Você está na página 1de 63

FUNDAO DE ENSINO EURPIDES SOARES DA ROCHA CENTRO UNIVERSITRIO EURPIDES DE MARLIA UNIVEM

Curso Bacharelado em Cincia da Computao


Disciplina

Organizao e Arquitetura de Computadores I


Notas de Aula-8
Subsistemas Bsicos de Uma UCP Sntese, Projeto, Implementao e Validao.

perodo 2011 prof. - Ildeberto de Genova Bugatti

394

Tema
Subsistemas Bsicos de Uma UCP Sntese, Projeto, Implementao e Validao.

Identificao dos pr-requisitos


So considerados pr-requisitos para o efetivo acompanhamento do tema os seguintes conceitos ou tcnicas: bases numricas, representao de nmeros nas bases dois e

hexadecimal, lgebra de boole, lgica digital; sntese, projeto, implementao e validao de circuitos lgicos digitais combinacionais e seqenciais; elementos multiplexadores; elementos decodificadores; tcnicas de associao de componentes eletrnicos em srie e paralelo.

Objetivos
O principal objetivo do captulo o de capacitar o aluno a projetar, dimensionar, implementar e avaliar sistemas computacionais de acordo com as necessidades e caractersticas de uso dos mesmos. Uma arquitetura de computador deve ser avaliada ou dimensionada de acordo com as caractersticas de sua aplicao. Ou seja, no podemos simplesmente afirmar que uma

arquitetura eficiente (boa) ou ineficiente (ruim) se no for considerada a aplicao na qual ela est sendo empregada.

8.1- Estruturas Bsicas de Arquiteturas de Computadores


Os computadores so formados por vrios subsistemas digitais que esto interligados atravs de vrios conjuntos de fios denominados barramentos. O sistema formado pelos subsistemas digitais e os barramentos, aliado a forma como eles esto interligados para realizar a troca de informaes denominada de Arquitetura de um Computador. Entre as arquiteturas precursoras dos computadores digitais, destaca-se a Arquitetura de Von Neumann. Os subsistemas digitais bsicos que constituam o computador de Von Neumann foram denominados de: Memria; Unidade Lgica Aritmtica (ULA), Unidade de Controle (UC) e Unidades de Entrada e Sada (UES), interligados por conjuntos de fios organizados tanto atravs das funes exercidas elos mesmos quanto pelas caractersticas ou tipo das informaes que trafegam atravs deles. A Figura 8.1 mostra essa arquitetura.

395

Barramento de Dados

Entrada Externa multiplex

Seleo

Barramento de Endereos Instruo

Endereo s

Memria

Controles L/E

Barramento de Controle

Sada Externa Reg.Geral A Reg. Geral B

Habilita A/B

Operao ULA

Reg. Acumulador

Habilita AC

Unidade de Controle (UC)

Figura 8.1- Arquitetura de Von Neumann


Essa denominao, Von Neumann, foi dada para homenagear o pesquisador que a idealizou, pois a forma de interligar os subsistemas da arquitetura incluindo subsistema de memria foi considerada, na poca, inovadora e trouxe enormes contribuies para o avano da rea de computao tanto em hardware quanto de software possibilitando tambm a integrao dessas duas reas. A arquitetura de Von Neumann foi a primeira arquitetura que continha programas armazenados na memria, sendo considerada a principal inovao e contribuio dessa arquitetura para o desenvolvimento dos computadores digitais. At hoje, essa arquitetura est presente na maioria dos processadores comerciais, que utilizam os mesmos subsistemas com formas alternativas ou diferenciadas de interlig-los, incluindo inovaes que o desenvolvimento tecnolgico na rea de semicondutores e microeletrnica viabilizaram.

396

Uma Arquitetura de um Computador Digital convencional

formada por trs

subsistemas principais: Memria, Unidades de Entrada e Sada (UES) e Unidade Central de Processamento (UCP). A UCP, por sua vez, formada pelas seguintes subsistemas e unidades: Unidade Lgica Aritmtica; Registradores de Uso Geral; Registradores Acumuladores e Unidade de Controle. Interligando esses subsistemas existem trs

conjuntos de fios para realizar a comunicao entre eles, esses conjuntos de fios so organizados de acordo com a funo dos mesmos e denominados de barramentos. A

organizao desse universo de fios em subconjuntos realizada da seguinte maneira: subconjunto de fios que transportam endereos de memria e endereos de unidades de entrada e sada, denominado Barramento de Endereos; subconjunto de fios que transportam dados, denominado Barramento de Dados e subconjunto de fios que realizam a ordenao e a correta seqncia de atividades a serem realizadas na arquitetura para a obteno de um resultado desejado, denominado Barramento de Controle, oriundos da Unidade de Controle. A Figura 8.2 ilustra uma evoluo da arquitetura de Von Neumann. Deve-se observar que na arquitetura proposta por Von Neumann a Unidade de Controle era um subsistema separado da UCP. Na arquitetura contida na Figura 8.2 a UCP j contm a Unidade de Controle. Cada um dos subsistemas contido nessa mquina possui ou executa funes especficas: - o Subsistema de Memria tem a funo de armazenar (conter) informaes temporariamente. O subsistema de memria est subdividido em Memria Principal e Memria Secundria. Os conceitos, caractersticas e formas de organizao dessas memrias esto contidos no item Subsistemas de Memria (cap.VII).

- a Unidade de Entrada e Sada (UES) tem a funo de realizar a comunicao entre o Homem e a Mquina e tambm a comunicao entre equipamentos. A UES contm os subsistemas que controlam tanto, os equipamentos perifricos de um computador (mouse, teclado, monitor de vdeo, impressora, disco rgido, unidade de disquetes, unidade de CD/DVDs, subsistemas de multimdia, entre outros), quanto, subsistemas que possibilitam a comunicao entre equipamentos, tais como: placas de rede, placas de fax-modem e muitos outros. Os conceitos e formas de implementao de Unidades de Entrada e Sada sero apresentados no captulo IX. - a Unidade Central de Processamento (UCP) formada pela Unidade Lgica e Aritmtica (ULA), registradores de uso geral, registrador acumulador e Unidade de Controle (UC), conforme mostra a Figura 8.1. Na Unidade Lgica e Aritmtica so executadas as

397

instrues contidas em um programa. Os registradores de uso geral armazenam temporariamente os operandos das instrues a serem executadas pela ULA. O registrador Acumulador armazena temporariamente os resultados das operaes executadas na ULA. A Unidade de Controle gera os comandos (microordens) na seqncia adequada para executar as atividades inerentes a cada programa em execuo e a comunicao com o exterior (Unidades de Entrada e Sada). Essa unidade coordena o instante exato de execuo das atividades para obter o resultado esperado. Fazendo uma comparao grosseira com o corpo humano, a Unidade de Controle equivalente ao sistema de coordenao motora. Os elementos bsicos de uma UCP, com exceo da Unidade de Controle, sero apresentados de forma mais detalhada do item 8.2.1 ao item 8.2.6. As caractersticas, tipos e propostas de implementao de uma Unidade de Controle sero apresentadas no captulo IX Nesse captulo sero descritas as diferentes formas de interligar, controlar e organizar esses subsistemas tanto a nvel terico quanto prtico atravs da implementao um computador com arquitetura reduzida, onde os conceitos sero verificados e consolidados. Cada aluno ir propor, sintetizar, simular e implementar o seu computador. Aps a implementao inicial, propostas de modificaes sero inseridas na arquitetura original com o objetivo de realizar anlises de desempenho e relaes de custo-benefcio das

modificaes inseridas na arquitetura original. Dessa forma, sero repassados aos alunos os conceitos de organizao e arquitetura de computadores possibilitando comparaes e a anlise de desempenho das diversas alternativas e tambm de subsistemas contidos em uma arquitetura de computador convencional. As atividades prticas de implementao das

mquinas propostas pelos alunos sero realizadas utilizando componentes programveis denominados FPGAs. Sero utilizadas placas contendo FPGAs e o ambiente de desenvolvimento da mesma empresa contendo o software denominado Project Manager. Esse software contm ferramentas que possibilitam a edio e simulao de componentes e/ou subsistemas. A edio pode ser realizada nas formas: grfica; diagrama de estados e

linguagem VHDL. Inicialmente utilizaremos a edio grfica para projetar os componentes de um computador com arquitetura de Von Neumann expandida. Um dos objetivos do texto capacitar cada leitor para implementar o seu prprio conjunto de subsistemas de um computador digital com o objetivo de gerar um processador com arquitetura equivalente a mostrada na Figura 8.1. Para tanto, os alunos devem aprender e dominar as principais caractersticas funcionais de cada um dos subsistemas utilizados. Os subsistemas e elementos auxiliares contidos na arquitetura da Figura 8.2 sero todos sintetizados, projetados, implementados e validados atravs de simulao. Aps essa fase os

398

componentes implementados sero integrados para a obteno de um computador bsico com arquitetura de Von Neumann Expandida da Figura 8.2 e com as seguintes caractersticas principais: palavra de oito bits e memria RAM esttica de 1024 palavras de 8 bits. Essa implementao pode ser verificada na Figura 8.17. Barramento de Dados

Entrada Externa multiplex

Barramento de Endereos Endereos


Reg
End

UES
Reg. Ent. Dados

Memria
Reg. Sada Dados

Sada Externa multiplex

Barramento de Controle

Reg.Geral A

Reg. Geral B

Unidade de Controle
ULA

ADD / SUB

UCP
Reg. Acumulador

Figura 8.2 - Arquitetura de Von Neumann Expandida

399

8.2- Conceitos e descrio dos componentes bsicos de uma UCP


Os conceitos e tcnicas necessrias para utilizar, dimensionar, propor, organizar e implementar arquiteturas de computadores sero apresentados nas sees que seguem. A

seqncia de apresentao, discusso, proposta, dimensionamento e implementao dos principais subsistemas de uma arquitetura ser a seguinte: Registradores de Uso Geral; Registrador Acumulador (AC); Registradores Contadores; Elementos Multiplexadores;

Unidade Lgica Aritmtica (ULA), Unidade Central de Processamento (UCP); Subsistema de Memria e Unidade de Controle. Os subsistemas implementados sero apresentados da seguinte maneira: descrio; diagrama esquemtico; implementao realizada no software Project Manager e tabela verdade descrevendo o funcionamento do elemento em foco.

8.2.1- Registradores de Uso Geral


Um registrador de Uso Geral um dos elementos que compem a Unidade Central de Processamento (UCP). A funo dos registradores gerais conter momentaneamente os operandos das instrues que sero executadas pela Unidade Lgica Aritmtica (ULA). Os registradores de Uso geral esto localizados nas entradas da ULA e pode receber dados tanto do Subsistema de Memria quanto do Registrador Acumulador. Os Registradores de Uso Geral classificado como um registrador que possui Entradas Paralelas e Sadas Paralelas quando se considera as caractersticas de suas entradas e sadas de dados. Assim, um Registrador de Uso Geral possui Entrada de Dados Paralela e Sada de Dados Paralela. Do ponto de vista lgico e temporal, um registrador de uso geral funciona na forma e seqncia descrita a seguir: o registro (dados) contido na sua Entrada de Dados armazenado no Registrador quando a entrada de controle denominada Enable (habilitar) assumir o nvel lgico 1 (um), e a entrada de controle denominada Clear (limpar) assumir o valor lgico 0 (zero) e no instante que acontecer uma borda de subida na entrada de controle de Clock (relgio). As Entradas Clear" e Preset no podem ser ativadas simultaneamente. A entrada de controle Clear predomina sobre as outras entradas de controle. Quando ela assumir o valor lgico 1 (um) o contedo do Registrador Geral zerado ou limpo, assim, todas as suas Sadas de Dados ficam iguais a zero, independente dos valores contidos em todas as outras entradas, tanto de controle quanto de dados. Quando a entrada de controle Preset estiver ativa (Preset=1), o contedo de todos os flip-flops

400

existentes no Registrador Geral assumir o valor lgico 1, ou sela todas as linhas da Sada de Dados assumiro o valor lgico 1. A Figura 8.3a mostra o diagrama de blocos de um Registrador de Uso Geral. A Figura 8.3b mostra a implementao do Registrador de Uso Geral no Software Project Manager. A Tabela 8.1 descreve a forma de funcionamento do Registrador da Figura 8.3b.

Entrada de Dados

Entradas de Controle

Enable
Clear/Preset

E Cl/Pr Ck

Registrador Geral

Clock

Sada de Dados (a) Diagrama de Blocos de um Registrador de Uso Geral

(b)- Uma Implementao do Registrador de Uso Geral no software Project Manager

Figura 8.3- Registrador de Uso geral


Entrada de Dados Entradas de Controle Enable Clock Clear Sada de Dados Comentrios Mantm o estado anterior Mantm o estado anterior Armazena as entradas atuais Limpa (zera) as Sadas

D7i ... D0i D7i ... D0i D7i ... D0i XXH

0 0 1 X

0 0 0 1

D7i-1 ... D0i-1 D7i-1 ... D0i-1 D7i ... D0i 00H

Tabela 8.1- Tabela Verdade do Registrador Geral da Figura 8.3b

401

Exerccio 8.1- Sintetizar e projetar um registrador de uso geral componente registrador de apenas 16 bits. Resoluo-

de 32 bits utilizando um

Para realizar a sntese e implementao do registrador de uso geral de 32 bits solicitado requerido o conhecimento dos seguintes itens: a- funcionamento e tabela verdade do componente eletrnico disponvel para ser utilizado no projeto b- conceitos e tcnicas de sntese e projeto de circuitos combinacionais e seqenciais (associao srie-paralelo de componentes eletrnicos).

Item a- O registrador de 16 bits disponibilizado para o projeto mostrado na figura 8.4 possui a tabela verdade equivalente ao registrador de 8 bits cujas caractersticas esto contidas na tabela 8.1 e figura 8.3.

Item b- Um registrador de 16 bits como o FD16CE caracterizado como uma memria de 1 palavra de 16 bits com entradas paralelas e sadas paralelas. Para obter uma memria de uma palavra de 32 bits basta interligar dois registradores de 16 bits atravs de uma associao paralela. Dessa forma foi obtido o registrador de uso geral de 32 bits contido na figura 8.5 foi obtido atravs da associao paralela de dois componentes FD16CE.

Figura 8.4- Componente Registrador FD16CE do software Project Manager A figura 8.5 mostra o registrador de uso geral de 32 bits. Nela, verifica-se as seguintes caractersticas: -

402

- as entradas de controle: CE (Chip Enable), C (Clock) e CLR (Clear); dos dois componentes FD16CE esto interligas em uma mesma origem; - o barramento de entrada de dados de 32 bits (D_RG[31:0] est subdividido em dois sub-barramentos de 16 bits; D_RG[31:16] e D_RG[15:0] respectivamente. - o barramento de sada de dados de 32bits, denominado Q_RG[31:0] composto pelos dois sub-barramentos de 16 bits denominados Q_RG[31:16] e Q_RG[15:0] originrios nos dois componentes de FD16CE respectivamente.

Figura 8.5- Registrador de Uso Geral de 32 bits A tabela 8.2 mostra o funcionamento do Registrador de Uso Geral de 32 bits obtido. Ou seja, o registrador de uso geral armazena em seu interior o contedo disponibilizado no barramento de entrada de dados somente quando ocorrer a seguinte configurao nas suas entradas de controle: CLR =0, CE=1 e CK = . Quando a entrada de controle CLR=1 o contedo do registrador 00000000(H) e Quando CLR=0 e CE=0 o registrador mantm o contedo de seu estado anterior, independente dos valores de todas as outra entradas. Entradas CLR 1 0 0 Controle CE X 0 1 CK X X Dados D_RG[31:0] XXXXXXXX(H) XXXXXXXX(H) D_RG31i ... D_RG0i

Sadas (Dados) Q_RG[31:0] 00000000(H) Mantm estado anterior D_RG31i ... D_RG0i

Tabela 8.2- Tabela Verdade do Registrador Geral de 32 bits da Figura 8.5

403

8.2.2- Registrador Acumulador (AC)


O registrador Acumulador (AC) mais um elemento presente na Unidade Central de Processamento. Ele fica localizado na sada da ULA e sua funo armazenar

temporariamente os resultados das operaes executadas na ULA, para posterior utilizao pela prpria ULA, via realimentao da ULA atravs dos registradores gerais ou para serem armazenados na memria principal. Geralmente, o Registrador Acumulador possui as seguintes caractersticas: Entrada Paralela; Entrada Serial a Esquerda com Deslocamento a Direita; Entrada Serial a Direita com Deslocamento a Esquerda; Sada Paralela; Sada Serial Direita; Sada Serial a Esquerda. A Figura 8.6a mostra um Registrador Acumulador em diagrama de blocos. A Figura 8.6b mostra uma implementao do Acumulador no software Project Manager. Para tanto foi utilizado um registrador de oito bits denominado SR8CLED. O registrador SR8CLED um registrador com entradas paralelas e seriais, deslocamento bidirecional ( esquerda e a direita). A Tabela 8.3 descreve a forma de funcionamento do Acumulador da Figura 8.6b, mostrando as entradas e sadas de dados com os respectivos valores das entradas de controle para cada uma das funes exercidas pelo Acumulador. A entrada de controle LOAD tem a funo de armazenar no Acumulador os dados contidos na Entradas de Dados Paralelo. Para armazenar os valores contidos na Entrada Paralela de Dados em paralelo as entradas de controle devem assumir a seguinte configurao: ENABLE=1, LOAD=1, CLEAR=0 e gerar borda de subida na entrada de controle de relgio (CLOCK= ); os valores das demais entradas de controle so irrelevantes na funo de armazenamento paralelo de dados. Para deslocar os dados contidos no registrador da esquerda para a direita e inserir o valor contido na entrada de dado serial (SHIFT_R) as entradas de controle devem assumir a seguinte configurao: ENABLE=1; LOAD=0; LEFT=0; CLEAR=0 e gerar borda de subida na entrada de controle de relgio (CLOCK= ). Para deslocar os dados contidos no registrador da direita para a esquerda e inserir o valor contido na entrada de dado serial (SHIFT_L) as entradas de controle devem assumir a

404

seguinte configurao: ENABLE=1; LOAD=0; LEFT=1; CLEAR=0 e gerar borda de subida na entrada de controle de relgio (CLOCK= ). Entrada Paralela de Dados

Entrada Serial da Esquerda LOAD

Shift_L

Shift_R

Entrada Serial da Direita

Entradas de Controle

Esquerda=0 Direita=1

L LEFT E Ck Cl/Pr

Registrador

Enable Clock
Clear/Preset

ACUMULADOR
(AC)

Sada Paralela de Dados (a) Diagrama de Blocos de um Registrador Acumulador

Entradas de Dados

Sada de Dados

Entradas de Controle

(b)- Uma Implementao do Registrador Acumulador no software Project Manager

Figura 8.6- Registrador Acumulador


A Tabela 8.3 contm as formas de funcionamento do registrador Acumulador da Figura 8.6b. Os valores das entradas de controle esto especificados para cada uma das funes exercidas pelo Acumulador.

405

Observe que o Acumulador permite entrada de dados nas formas paralela e serial. Como conseqncia da disponibilidade de entradas seriais o Acumulador possui a capacidade de deslocar o contedo armazenado em seus Flip-Flops em dois sentidos (deslocamento bidirecional), tanto da esquerda para a direita quanto da direita para a esquerda. O deslocamento para a direita equivalente operao matemtica de diviso por 2, e o deslocamento a esquerda equivalente operao matemtica de multiplicao por 2. Entrada de Dados Entradas de Controle Serial Paralelo Shift_ Shift_ Enabl Loa Lef Clo Cle L R e ck d t ar Sada de Dados

Comentrios

D7i ... D0i D7i ... D0i D7i ... D0i D7i ... D0i D7i ... D0i D7i ... D0i D7i ... D0i
XXH

X X X X X 0 1 X

X X X 0 1 X X X

0 X X 1 1 1 1 X

0 1 1 0 0 0 0 X

X x x 0 0 1 1 X

X 0 X

0 0 0 0 0 0 0 1

D7i-1 ... D0i-1 D7i-1 ... D0i-1 D7i ... D0i 0, D6i ... D0i

Mantm estado anterior Mantm estado anterior

Armazena entradas atuais Desloca direita, insere Shift_R (divide por 2) 1, D6i ... Desloca direita, insere Shift_R (divide e soma D0i 1) Desloca esquerda, insere D7i ... D1i , Shift_L (multiplica por 0 2) Desloca esquerda, insere D7i ... D1i , Shift_L 1 (multiplica,soma1) 00H Limpa (zera) as Sadas

Tabela 8.3- Tabela Verdade do Registrador Acumulador Figura 8.6b


Exerccio 8.2- Sintetizar e implementar um registrador acumulador de 32 bits atravs da utilizao de um componente registrador acumulador de apenas 16 bits. ResoluoPara realizar a sntese e implementao do registrador acumulador de 32 bits solicitado necessrio dominar os seguintes itens: a- funcionamento e tabela verdade do componente eletrnico disponvel para ser utilizado no projeto b- conceitos e tcnicas de sntese e projeto de circuitos combinacionais e seqenciais (associao srie-paralelo de componentes eletrnicos).

406

Item a- O registrador acumulador de 16 bits disponibilizado para o projeto SR16CLED mostrado na figura 8.7 possui a tabela verdade equivalente ao registrador de 8 bits cujas caractersticas esto contidas na tabela 8.3 e figura 8.6. O componente SR16CLED pode ser utilizado como registrador acumulador pois possui as caractersticas necessrias e intrnsecas a um registrador acumulador: entrada e sadas paralelas, entradas e sadas seriais e deslocamento bidirecional.

Entradas de Dados

Entradas de Controle

Figura 8.7- Componente Registrador SR16CLED do software Project Manager Item b- Um registrador acumulador de 16 bits como o SR16CLED tambm

caracterizado como uma memria de 1 palavra de 16 bits. No entanto esse componente possui a capacidade de modificar o seu contedo atravs de operaes de controle que realiza o deslocamento bidirecional (direita ou esquerda) de seu contedo. Para obter uma memria de uma palavra de 32 bits utilizando dois registradores com entrada paralela e sada paralela basta interligar dois

registradores de 16 bits atravs de uma associao paralela. Como o registrador, alm de armazenara dados em paralelo tambm possui a capacidade de realizar entrada de dados de forma serial e em sentido bidirecional. Assim, alm da associao paralela de dois componentes SR!CLED necessrio verificar a dependncia de dados existente entre os dois registradores nas operaes que exigem deslocamento bidirecional de seu contedo.Considerando todas as dependncias de dados existentes, foi gerado o registrador acumulador de 32 bits contido na figura 8.8.

407

Verifica-se na figura 8.8 que o bit 15 do componente SR!CLED que armazena a parte menos significativa do contedo do registrador acumulador est interligada entrada serial de dados SRI (Shift_Right_Input) permitindo o deslocamento direita de dados entre os dois componentes de 16 bits. De forma similar, a sada 16 do componente SR!CLED que armazena a parte mais significativa do contedo do registrador acumulador est interligada entrada serial de dados SLI (Shift_Left_Input) possibilitando o deslocamento `a esquerda de dados entre os componentes de 16 bits.

Figura 8.8- Implementao de um Registrador Acumulador de 32 bits A tabela 8.4 descreve a forma de funcionamento do registrador acumulador de 32 bits da figura 8.8. Entradas Controle C LEF CLR L E T 1 0 0 0 X X 1 X 0 1 0 1 X X 1 1 Dados C k X 1 0 X X XXXXXXXX(H) XXXXXXXX(H) SL I X X SR I X X D_AC[31:0] XXXXXXXX(H) D_AC31i ... D_AD0i Sada de Dados Comentrios Q_AC[31:0] 00000000(H) D_AC31i ...D_AC0i D_AC30i ... D_AC0i,0 D_AC30i ... Limpa Acumulador Entrada Paralela Deslocamento a esquerda (SLI=1) Deslocamento a

408

D_AC0i,1 0 0 0 1 0 1 0 0 X X 1 0 XXXXXXXX(H) XXXXXXXX(H) 1, D_AC31i ... D_AC0i 0, D_AC31i ... D_AC0i

esquerda (SLI=0) Deslocamento a Direita (SRI=1) Deslocamento a Direita (SRI=0)

Tabela 8.4- Tabela verdade do registrador Acumulador de 32 bits mostrado na figura 8.8

8.2.3- Registradores Contadores Bidirecionais (UP/DOWN)


Os circuitos contadores esto presentes em vrios subsistemas de uma arquitetura. Com nfase na Unidade de Controle e Unidade Lgica Aritmtica, ambas presentes na Unidade Central de Processamento. O registrador contador que est presente na Figura 8.9 um contador bidirecional, gera contagem tanto na forma crescente quanto na forma decrescente (contador UP-DOWN). Alm disso, o contador permite que a contagem possa iniciar em qualquer valor que ele possa conter. A entrada de controle denominada LOAD viabiliza essa funo atravs do armazenamento de um valor registro (dado/valor) qualquer nos flip-flops do contador. Tratase de um contador de 8 bits que permite expanso e construo de contadores de maior comprimento atravs da associao serial de mais de dois ou mais elementos (unidades), formando contadores com quantidade de bits (comprimento) sendo mltiplo de oito (8). Para tanto deve ser utilizada, de forma apropriada, a sada de controle denominada Enable_Out. Para implementar o contador contido na figura 8.9b no software Project Manager foi utilizado o elemento CB8CLED. A Tabela 8.5 descreve a forma de funcionamento do Registrador UP/DOWN da Figura 8.9b, mostrando as entradas e sadas de dados com os respectivos valores das entradas de controle para cada uma das funes exercidas pelo Contador. A entrada de controle LOAD tem a funo de armazenar no Contador o valor dos dados contido na Entrada Paralela de Dados.

409

Entrada de Dados D7i ... D0i XXH XXH 01H XXH FEH XXH

Ena ble X X 1 1 1 1 X

Entradas de Controle Loa Dire Clo Clea o ck d r 0 X X 0 1 X 0 0 0 0 0 X 0 0 1 1 X X 0 0 0 0 1

Sada de Dados Q7i-1...Q0i-1 D7i ... D0i (Q7i-1...Q0i-1)1 00H (Q7i-1...Q0i1)+1 FFH 00H

Comentrios Mantm estado anterior Armazena entradas de dados Conta para baixo Enable_Out=1; Detecta_00/FF=1 Conta para Cima Enable_Out=1; Detecta_00/FF=1 Limpa o contedo (insere zero)

Tabela 8.5- Tabela Verdade do Registrador Contador UP/DOWN da Figura 8.9. Para armazenar os valores contidos na Entrada Paralela de Dados as entradas de controle devem assumir a seguinte configurao: LOAD=1; CLEAR=0 e gerar borda de subida na entrada de controle de relgio (CLOCK= ); os valores das demais entradas de controle so irrelevantes na funo de armazenamento paralelo de dados. Para que o contador gere um seqncia de contagem decrescente as entradas de controle devem assumir a seguinte configurao: ENABLE=1; LOAD=0; Direo=0; CLEAR=0 e gerar borda de subida na entrada de controle de relgio (CLOCK= ). Para que o contador gere um seqncia de contagem crescente as entradas de controle devem assumir a seguinte configurao: ENABLE=1; LOAD=0; Direo=1; CLEAR=0 e gerar borda de subida na entrada de controle de relgio (CLOCK= ). A sada de controle Enable_Out pode ser utilizada para projetar contadores com maior quantidade de bits atravs da associao em srie de dois ou mais elementos contadores CB8CLED. Para tanto, a sada de controle Enable_Out do elemento CB8CLED que conter os bits menos significativos do contador projetado deve ser ligado entrada de controle Enable do elemento CB8CLED que conter os bits mais significativos do contador. Essa configurao vlida tanto para a contagem na forma crescente quanto para a contagem na ordem decrescente. Na contagem crescente a sada Enable_Out assume o valor lgico 1 quando as sadas de dados do contador atingir o valor hexadecimal FF. O mesmo acontece na forma de contagem decrescente, quando as sadas de dados do contador atingir a contagem 00H.

410

A sada Detecta_00/FF tem a funo de detectar os limites inferiores e superiores de contagem do registrador contador. Na forma decrescente ele detecta o valor Hexadecimal 00 w na forma crescente ele detecta o valor Hexadecimal FF.

Entrada Paralela de Dados

Direo LOAD

UP L CE Ck Cl/Pr

CEO

Enable_Out Sadas de Controle Detecta_00/FF

Entradas De Controle

Registrador Contador UP/DOWN

Enable Clock Clear/ Preset

TC

Sada Paralela de Dados (a) Diagrama de Blocos de Registrador Contador UP/DOWN

Entrada de Dados

Sada de Dados

Entradas de Controle

Sadas de Controle

(b)- Uma Implementao de Registrador Contador UP/DOWN no software Project Manager

Figura 8.9- Registrador Contador Bidirecional


A Figura 8.9a mostra o diagrama lgico de um Registrador Contador bidirecional genrico de 8 bits. A Figura 8.9b mostra a implementao de um registrador Contador

411

Bidirecional de oito bits, utilizando um elemento contador UP/DOWN de oito bits contido na biblioteca do software Project Manager. Exerccio 8.3- Sintetizar e projetar um registrador contador bidirecional de 32 bits utilizando um componente contador UP-DOWN de apenas 16 bits. Resoluo- Para realizar a sntese implementao do contador solicitado requerido o conhecimento dos seguintes itens: a- funcionamento e tabela verdade do componente eletrnico disponvel para ser utilizado no projeto b- tcnicas de associao srie-paralelo de componentes eletrnicos e; c- conceitos e tcnicas de sntese e projeto de circuitos combinacionais e seqenciais. Item a- O contador UP-DOWN de 16 bits disponibilizado para o projeto mostrado na figura 8.10 e possui a tabela verdade equivalente ao registrador contador UPDOWN de 8 bits, cujas caractersticas esto contidas na figura 8.9 e descritas na tabela tabela 8.5. facilmente verificado que a diferena no comprimento da palavra entre os dois componentes (16 e 8 bits respectivamente) gera como consequencia as seguintes modificaes nas funes das sadas denominadas CEO e TC no componente de 16 bits:

Entradas de Controle

Sadas de Controle

Figura 8.10- Registrador contador UP-DOWN de 16 bits (Project Manager) - As sadas CEO-ENABLE_OUT ser ativada (nvel lgico =1) quando o contador atingir o valor mximo (FFFF(H)) e/ou o valo mnimo (0000 (H)) quando a entrada de controle UP-Direo estiver definindo o sentido de contagem crescente

412

(UP=1) e/ou decrescente (UP=0) respectivamente. As funes da entradas de controle no sofrem modificaes. Item b- natural que sero necessrios dois registradores contadores de 16 bits para obter um contador de 32 bits. Alm disso possvel tambm concluir que os dois contadores de 16 bits devero ser associados (interligados) em paralelo para obter o contador de 32 bits, pois a associao em paralelo de dois componentes de memria utilizada para aumentar ao comprimento da palavra. - No entanto, existe tambm dependncia de sinais de controle entre os dois componentes. Essa interdependncia gera uma associao lgica serial entre os dois componentes que sero necessrios para obter os 32 bits solicitados. O circuito obtido a partir dessas consideraes mostrado na figura 8.11. Na figura observa-se que a entrada de controle CE-Chip Enable do contador que conter os bits mais significativos do contedo est ligada sada CEO-Enable_Out do contador que conter os bits menos significativos do valor de contagem. Item c- Com a configurao mostrada na figura 8.11 o registrador ir gera as seguintes as seqncias de contagem mostrada na tabela 8.6. Ou seja, quando o contador est configurado para gerar a seqncia de contagem na ordem crescente (UP=1, LOAD=0, CE=1) e com a contagem inicial igual a 00000000(H), as sadas iro mostrar uma sequencia crescente de contagem culminando com o valor FFFFFFFF(H). De forma similar, quando o contador estiver configurado para gerar a contagem na ordem decrescente (UP=0, LOAD=0, CE=1) as sadas assumiro as configuraes: FFFFFFFF(H), FFFFFFFE(H), ... , 00000000(H).

413

Figura 8.11- Registrador Contador Bidirecional de 32 bits


Clock inicial Clock inicial Ordem crescente UP Q[31:16] Q[15:0] 1 0000 0000 1 0001 0000 1 0000 1 FFFE 0000 1 FFFF 0000 1 0000 0001 1 0001 0001 1 1 FFFF FFFE 1 FFFF FFFF 1 0000 0000 Ordem Decrescente UP Q[31:16] Q[15:0] 0 FFFF FFFF 0 FFFE FFFF 0 FFFF 0 0001 FFFF 0 0000 FFFF 0 FFFF FFFE 0 0 0000 0000 CEO_MENOS 0 0 0 0 1 0 1 0

Final

final

0 0 0 0 0 1 0 1

Tabela 8.6- Seqncia de sadas do contador de 32 bits

8.2.4- Elementos Multiplexadores

414

Um multiplex pode ser utilizado para implementar vrias funes, desde a capacidade de implementar circuitos comutadores de sinais em centrais de comutao telefnica e at mesmo na a implementao de toda e qualquer funo lgica (expresses booleanas). Na arquitetura proposta na Figura 8.2 esto sendo utilizados dois elementos multiplex com a funo de subsistemas. Um elemento multiplex transfere para a sua sada de dados apenas um nico valor contido em uma de suas entradas de dados, de acordo com o valor contido nas suas entradas de controle de seleo. A quantidade de entradas de seleo define e limita a quantidade de entradas de dados que pode e deve existir em um elemento multiplex, obedecendo sempre a seguinte relao: a quantidade de entradas de dados dada por dois (2) elevado ao nmero de entradas de seleo. viabilizar o acesso a recursos que devem ser compartilhados por vrios

Quantidade de Entradas = 2 entradas de seleo


A Figura 8.11b1 mostra um elemento multiplex existente na biblioteca do software Project Manager denominado M2_1 contendo uma nica (1) entrada de seleo e duas entradas de dados (2=21). A Figura 8.11.b2 mostra um elemento multiplex denominado M4_1E, esse elemento contm duas (2) entradas de seleo e quatro entradas de dados (4=22) e a Figura 8.11.b3 mostra um elemento multiplex denominado M8_1E, contendo 3 entradas de seleo e conseqentemente oito (8=23) entradas de dados. A entrada de controle Enable (habilitar) est presente nos elementos denominados M2_1 e M4_1E. A entrada Enable permite o funcionamento normal do multiplex quando ela assume o valor 1. Quando ela assume o valor 0 (zero) a Sada de Dados ser sempre igual a zero, independente dos valores das Entradas de Dados Ei.

Entradas de Dados

Entradas de Controle Sada Enable Sel_1 SEL_0

E3 ... E0 E3 ... E0 E3 ... E0 E3 ... E0 E3 ... E0

1 1 1 1 0

0 0 1 1 X

0 1 0 1 X

E0 E1 E2 E3 0

Tabela 8.7- Tabela Verdade do Multiplex M4_1E do item b2 da Figura 8.11. A tabela 8.7 mostra a forma de um elemento multiplex de duas (2) entradas de controle de seleo e quatro (4=22) entradas de dados e uma entrada de controle Enable,

415

equivalente ao multiplex mostrado na figura 8.11b2. Um multiplex com essas caractersticas seleciona uma entre 4 diferentes entradas para ser transferida para sua sada e tambm denominado multiples 4x1.

E0
Entradas de Dados

E1 E2 E3

1 MULTIPLEX 2

Sada de dados

Enable

S1

S0

Entradas de Controle
(a) Diagrama de Blocos de um Elemento Multiplex

(b)- Elementos Multiplex do software Project Manager

Figura 8.11 Elementos Multiplexadores


Exerccio 8.4- Sintetizar e Implementar um multiplex que transfira para a sua sada um entre 4 bytesutilizando elementos multiplex 4x1.

416

A resoluo do exerccio 8.4 requer o conhecimento da tabela verdade e do funcionamento de circuitos miltiplexadores alm do domnio tcnicas de sntese e projeto de circuitos combinacionais (associao srie-paralelo de elementos multiplexadores). Resoluo: O exerccio solicita a implementao de um multiplex que transfira para sua sada um byte que deve ser selecionado entre diferentes 4 bytes de entrada. Como cada byte formado por um conjunto de 8 bits o elemento multiplex solicitado ter 32 entradas e 8 sadas, ou seja, um multiplex 32x8. Foi tambm disponibilizado para a sntese e implementao do multiplex 32x8, circuitos mutiplexadores 4x1. A descrio do funcionamento e a forma grfica do multiplex 4x1, esto explicitadas na figura 8.12 e tabela 8.8 respectivamente.

Figura 812- Circuito Multiplex 32x8 implementado com 8 emementos multiplex 4x1 Para obter um multiplex 32x8 foram utilizados 8 elementos multiplex 4x1 para gerar um multiplex 32 entradas e 8 sadas (multiplex 32x8). Os 8 elementos multiplex 4x1 sero interligados em paralelo. Cada elemento multiplex 4x1 ir tranferir para a sua sada um dos bits do byte escolhido para ser transferido para a sada do multiplex 32x8. A figura 8.12 mostra a disposio dos 8 multiplex 4x1 interligados de forma paralela. Cada um dos multiplex seleciona um dos bits do byte escolhido (determinado) pelas entradas de seleo para a sua sada, compondo um barramento de sada de 8 bits denominado O[7:0]. Verifica-se tambm na figura a existncia de 4 barramentos de 8 bits denominados: A[7:0], B[7:0], C[7:0] e D[7:0]. Cada uma das entradas de seleo de todos os 8 multilex 8x1 esto interligadas a uma nica origem, essa configurao permite a melhor organizao grfica do circuito.

417

As entradas de seleo foram denominadas S1 e S0 e a tabela 8.8 mostra o funcionamento do multiplex 32x8 da figura 8.12. Entradas D3 D[7:0] D[7:0] D[7:0] D[7:0] D[7:0] Dados D2 D1 C[7:0 B[7:0 ] ] C[7:0 B[7:0 ] ] C[7:0 B[7:0 ] ] C[7:0 B[7:0 ] ] C[7:0 B[7:0 ] ] D0 A[7:0 ] A[7:0 ] A[7:0 ] A[7:0 ] A[7:0 ] Controle E S1 S0 0 0 1 1 1 1 0 0 1 1 X 1 0 1 X

Sada O[7:0] A[7:0] B[7:0] C[7:0] D[7:0] 00(H)

Tabela 8.8- Tabela Verdade do circuito Multiplex 32x8 Exerccio 8.5- Nas mquinas de 32 bits comum o compartilhamento de um barramento de 32 bits por dois outros barramentos tambm de 32 bits. Para possibilitar essa aplicao, sintetize e implemente circuito multiplex que transfira para sua sada um nico barramento de 32 bits escolhidos entre dois diferentes barramentos contidos em suas entradas. Resoluo:A resoluo do exerccio 8.5 requer o conhecimento da tabela verdade e do funcionamento de circuitos miltiplexadores alm do domnio tcnicas associao paralela de elementos multiplexadores. O exerccio requer a sntese e construo de um circuito multiplex que selecione um entre dois barramentos de 32 bits contidos em suas entradas para a sua sada. Podemos interpretar o problema utilizando 32 elementos mutiplexadores 2x1 igual ao mostrado no item b1 da figura 8.11 para implementar a funo solicitada no exerccio. O multiplex 64x32 obtido mostrado na figura 8.13 e o seu funcionamento descrito na tabela 8.9.

418

Figura 8.13- Circuito Multiplex 64x32 construdo com 32 elementos mutiplex 2x1

Entradas Dados Controle D1 D0 E S0 B[31:0] A[31:0] 1 0 B[31:0] A[31:0] 1 1 B[31:0] A[31:0] 0 X

Sada O[31:0] A[7:0] B[7:0] 00000000(H)

Tabela 8.9- Tabela verdade do multiplex 64x32 da figura 8.13

8.2.5- Comparadores de Magnitude


Um elemento comparador de magnitude realiza operaes relacionais entre dois nmeros. A capacidade de comparar grandezas em uma arquitetura viabiliza a construo de comandos repetitivos e operaes lgicas. Portanto, esses elementos esto presentes tanto na Unidade Lgica Aritmtica (ULA) quanto na Unidade de Controle (UC). As operaes relacionais: Maior (>), Menor (<), Igualdade (=), Maior ou Igual (<=) e Menor ou Igual (<=) permitem a construo de estruturas tanto repetitivas quanto condicionais, e como

conseqncia viabilizam a implementao de operaes lgicas e matemticas complexas e no existentes na ULA, atravs da utilizao de combinaes ou repeties de suas operaes bsicas.

A Figura 8.14a mostra o diagrama de blocos de um Comparador de Magnitude Genrico e a Figura 8.14b mostra a implementao de um comparador de magnitude de oito bits no software Project Manager, utilizando o elemento COMPM8.

Entradas Paralelas

Operando_X

A Comparador De Magnitude

>

Maior

Sadas
Menor

Operando_Y

<

(a) Diagrama de Blocos de um Comparador de Magnitude

419

Operandos

Sadas
Operaes Relacionais

(b)- Uma Implementao de um Comparador de Magnitude no software Project Manager

Figura 8.14- Comparador de Magnitude


A Tabela 8.10 descreve a forma de funcionamento do Comparador de Magnitude da Figura 8.14b. Observa-se na referida tabela que um circuito comprador de magnitude um circuito combinacional que no necessita de entradas de controle, as sadas do mesmo so geradas a partir da disponibilizao dos valores dos dois operandos em suas entradas paralelas de dados. A combinao dos valores lgicos das suas duas sadas, denominadas Maior e Menor possuem o seguinte significado: Maior=1 e Menor=0 o valor presente na entrada X e Maior que o valor presente na entrada Y (X>Y); Maior=0 e Menor=1 quando Y>X; e Maior=Menor=0 quando X=Y. Operandos Sadas Maior Menor Comentrios Operando_X Maior que Operando_Y Operando_X Menor que Operando_Y Operando_X Igual a Operando_Y

X>Y X<Y X=Y

1 0 0

0 1 0

Tabela 8.10- Tabela Verdade do Comparador de Magnitude da Figura 8.14b. Exerccio 8.6- A Unidade Lgica Aritmtica de uma Unidade Central de Processamento que executa as operaes lgicas, aritmticas e relacionais existentes em nvel de hardware. As operaes relacionais executadas em uma UCP, alm de ser utilizada nos clculos existentes nos programas de usurios, tambm utilizada para implementar comandos iterativos (repetitivos) na mquina. Assim, a existncia de operaes relacionais implementadas como instrues em hardware aumentam a eficincia de uma

420

arquitetura. Dada a importncia das operaes relacionais, sintetize e implemente um circuito que gere todas as operaes relacionais com operandos de 32 bits utilizando dois comparadores de magnitude de 16 bits com funcionamento equivalente ao comparador de magnitude de 8 bits contido na figura 8.14 e descrito na tabela 8.10.

Resoluo: Para implementar as operaes relacionais em circuito lgico necessrio realizar as seguinte atividades: a- primeiramente sintetizar a tabela verdade de todas as operaes relacionais: Maior, Menor, Igualdade, Diferena, Maior ou Igual e Menor ou Igual; b- Identificar a dependncia de informaes geradas quando for realizada a associao paralela dos dois componentes comparadores disponibilizados para o projeto. Essa dependncia de informaes e influi na sntese da tabela verdade do circuito combinacional a ser gerado; cassociar em paralelo dois comparadores de magnitude de 16 bits que implementam apenas as operaes Maior que e Menor que;

Item a:- O comparador de magnitude de 16 existente na biblioteca do software Project Manager e que satisfaz os requisitos do projeto o componente COMPMC16, cujo funcionamento equivalente ao componente comparador de magnitude de 8 bits mostrado na figura 8.14 e tabela 8.10. O componente COMPMC16 compara duas entradas disponibilizadas em barramentos de 32 bits e gera o resultado da comparao entre os valores contidos nos dois barramentos nas sadas lgicas GT (Maior que) e LT (Menor que). Quando realizada a associao paralela dos dois comparadores de 16 bits, mostrada na figura 8.15, verifica-se a dependncia entre as sadas GT e LT dos dois componentes. Sendo, que o componente que contem os 16 bits mais significativos dos dados de 32 bits, contidos nos seus barramentos de entrada foi denominado de componente 1 e conseqente suas sadas lgicas Maior que e Menor que so denominadas respectivamente de GT1 e LT1. De forma similar e complementar, o componente que contem os 16 bits menos significativos dos dados comparados foi denominado de componente 0 e suas sadas identificadas por GT0 e LT0.

421

A tabela verdade que descreve

todas as operaes relacionais a serem

implementadas foi sintetizada e est contida na tabela 8.w.


Tabela Verdade das Operaes Relacionais de 32 bits utilizando dois COMPMC16
Decimal

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

GT1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Entradas LT1 GT0 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1

LT0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

GT 0 0 1 X 0 0 0 X 1 1 1 X X X X X

LT 0 1 0 X 1 1 1 X 0 0 0 X X X X X

Sadas Eq GE 1 1 0 0 0 1 X X 0 0 0 0 0 0 X X 0 1 0 1 0 1 X X X X X X X X X X

LE 1 1 0 X 0 0 0 X 1 1 1 X X X X X

DIF 0 1 1 X 1 1 1 X 1 1 1 X X X X X

Tabela 8.11- Tabela Verdade das operaes relacionais de 32 bits implementadas com dois componentes COMPMC16 Item b- Para sintetizar os circuitos lgicas que geram todas as seis operaes relacionais foi gerado seis mapas de karnaughj de 4 bits. Nesses mapas as entradas das funes lgicas ss as sadas GT1, LT1, GT0 e LT0 dos dois componentes COMPMC16 utilizados. Os mapas de Karnaugh auxiliaram na sntese obteno da expresses mnimas das operaes relacionais e a conseqente implementao de seus circuitos lgicos. Para efeito de implementao do circuito final e documentao adequada ao software Project Manager as operaes relacionais foram batizadas da seguinte forma: Maior que = GT, Menor que = LT, Igualdade = EQ, Maior ou Igual = GE, Menor ou Igual = LE e Diferena = DIF. As respectivas expresses mnimas obtidas foram: GT = LT1 + LT1 . GT0 LT = LT1 + GT1 . LT0 EQ = GT1 . LT1 . GT0 . LT0 GE = GT1 + LT1 . LT0

422

LE = LT1 + GT1 . GT0 DIF = GT1 + LT1 + GT0 + LT0 GT1 00 00 01 11 0 0 X 1 01 0 0 X 0 11 X X X X 10 1 1 00 01 00 0 1 X 0 01 1 1 X 1 GT1 11 X X X X 10 0 0

LT0
X 11

LT0
X 0

GT0
10 1

GT0
10

LT1
GT = LT1 + LT1 . GT0 GT1 00 00 00 01 11 1 0 X 0 01 0 0 X 0 11 X X X X 10 00 0 0 01 0 X 1 0 X 0 1 0 01

LT1
LT = LT1 + GT1 . LT0 GT1 11 X X X X 10 1 1

LT0
X 0

LT0
11 X 1

GT0
10

GT0
10

LT1
Eq = GT1 . LT1 . GT0 . LT0 GT1 00 00 01 11 1 1 X 0 01 1 1 X 1 11 X X X X 10 0 0 00 01 00 0 1 X 1

LT1
GE = GT1 + LT1 . LT0 GT1 01 1 1 X 1 11 X X X X 10 1 1

LT0
X 0 11 X 1

LT0 GT0
10

GT0
10

LT1

LT1

423

LE = LT1 + GT1 . GT0 DIF = GT1 + LT1 + GT0 + LT0 O circuito final obtido mostrado na figura 8.15. O circuito contm

dois

comparadores de magnitude de 16 bits COMPMC16 associados em paralelo e os circuitos lgicos implementados a partir das expresses lgicas obtidas atravs do auxlio dos respectivos mapas de Karnaugh.

Figura 8.15- Circuito que implementa as Operaes Relacionais de 32 bits com dois componentes COMPMC16

A tabela 8.x descreve a foram de funcionamento do circuito implementado executa todas as operaes relacionais em hardware. Rela o A>B A<B A=B AB AB A#B Sadas EQ GE 0 1 0 0 1 1 X 1 X X 0 X

que

Entradas A[31:0] A[31:0] A[31:0] A[31:0] A[31:0] A[31:0] B[31:0] B[31:0] B[31:0] B[31:0] B[31:0] B[31:0]

GT 1 0 0 X 0 X

LT 0 1 0 0 X X

LE 0 1 1 X 1 X

DIF 1 1 0 X X 1

424

Tabela 8.12- Tabela Verdade do Comparador de Magnitude de 32 bits da figura 8.15

8.2.6- Unidade Central de Processamento (UCP)


A Unidade Lgica Aritmtica (ULA) o principal componente da Unidade Central de Processamento. A ULA responsvel pela execuo das instrues contidas em um programa, cada instruo de um programa constituda por vrias operaes existentes na ULA. Assim, quanto maior a quantidade de operaes existentes na ULA maior ser a eficincia do computador. No entanto, se uma ULA executar as operaes matemticas bsicas; soma, subtrao, multiplicao e diviso; as operaes lgicas bsicas; And, Or e Not; e as operaes relacionais; Maior, Menor, Igualdade e Desigualdade; possvel construir um conjunto enorme de operaes mais complexas atravs da elaborao de microprogramas que implementam tais operaes e que faro parte das operaes fornecidas pela ULA em conjunto com os demais elementos contidos na CPU: Registradores de uso Geral, Acumulador, Comparadores de Magnitudes e a Unidade de Controle que ir conter os microprogramas que iro contribuir para a execuo de operaes mais elaboradas e por sua vez executar todas as instrues contidas em um programa. A tabela 8.13 mostra as operaes executadas na CPU proposta. A coluna denominada cdigo de operao possui 4 bits, assim a CPU possui dezesseis (16= 2 4) diferentes operaes. Sendo: sete (7) operaes matemticas (soma, subtrao, multiplicao, diviso, MOD, Complemento e Inverso); cinco (5) operaes relacionais (Maior, Menor, Igualdade, Maior ou Igual e Menor ou Igual) e quatro (4) operaes lgicas (AND, OR, NOT e OU-Exclusivo). Operandos Cdigo da Operao A B 0 0 0 0 A B 0 0 0 1 A B 0 0 1 0 A B 0 0 1 1 A B 0 1 0 0 A B 0 1 0 1 A 0 1 1 0 A A A A A A 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 Operao No Operation Soma Subtrao Multiplicao Diviso Mod Complemento de X Soma com Zero Maior Menor Igualdade Diferente AND Descrio --AC = A + B AC = A B AC = A * B AC = A DIV B AC = A MOD B AC=X = FFH A AC = A + 00H AC = (A > B) AC = (A < B) AC = (A = B) AC = (A # B) AC = A AND B Tipo

Matemica

B B B B B

Relacional

Lgica

425

A A A

B B B

1 1 1

1 1 1

0 1 1

1 0 1

OR NOT X X XOR Y

AC = A OR B AC = NOT A AC = A B

Tabela 8.13- Tabela de operaes da UCP da Figura 8.16. A Figura 8.16a contm os principais elementos presentes em uma UCP, todos os elementos presentes na referida figura foram discutidos e propostas implementaes de cada um deles, exceto a Unidade de Controle (UC) que ainda no foi proposta uma implementao. Essa Unidade ser implementada aps a apresentao dos conceitos e propostas de Implementao do subsistema de memria presente na Figura 8.2. Pois, a UC ir tambm controlar a forma e os instantes de operar/utilizar o subsistema de memria.

Multiplex

Reg. A

Reg. B

Multiplex

Comparador de Magnitude

UP/DOWN

ULA
Unidade de Controle
Multiplex

Acumulador

426

(a) Diagrama de Blocos de uma Unidade Central de Processamento (ULA)

(b)- Implementao de uma UCP no software Project Manager

Figura 8.16- Unidade Central de Processamento


A UC coordena o instante exato de execuo das atividades para obter o resultado esperado em uma instruo contida em um programa; e dentre as atividades inerentes execuo de qualquer instruo est busca de operandos e o armazenamento do resultado. Essas operaes so realizadas no Subsistema de Memria e so denominadas respectivamente de operao de leitura e operao de escrita na memria. Assim, primeiramente sero apresentados os conceitos relacionados ao subsistema de memria e propostas de implementao do mesmo, para, aps isso, propor a implementao de uma Unidade de Controle para a arquitetura proposta na Figura 8.2. Essa implementao deve ser

427

discutida em sala de aula e implementada em conjunto e com propostas elaboradas e sugeridas pelo corpo discente.

8.4- Implementao da Arquitetura de Von Neumann Expandida


A arquitetura de Von Neumann expandida proposta na Figura 8.2 foi, projetada, implementada, simulada e validada utilizando o software Project Manager da XILINX e est apresentada na Figura 8.17. Para implementar uma mquina com a arquitetura proposta necessrio definir as caractersticas que influenciam diretamente na implementao do projeto. Tais como, comprimento de palavra; dimenses da Memria Principal.

O comprimento da palavra define a quantidade de linhas do Barramento de Dados, a quantidade de bits dos seguintes registradores: Registradores Gerais, Registrador

Acumulador. Registrador de Dados de Entrada da Memria; Registrador de Sada de Dados da Memria e de todos os registradores da Memria Principal.

As dimenses da memria definem a quantidade mnima de linhas do Barramento de Endereo e a quantidade mnima do Registrador de Endereo da Memria.

A palavra de nossa mquina ter 8 bits e a memria ser organizada em 4 pginas de 32 bytes, gerando uma memria de 128 bytes. Salienta-se que a modificao dessas caractersticas no influenciar na elaborao da Unidade de Controle. Assim, para aumentar as dimenses da memria deve-se dimensionar com folga o Barramento de Endereo; e para aumentar a quantidade de bits da palavra, basta realizar a associao em paralelo dos elementos de memria.

Nessa instncia do projeto no esto sendo implementados os recursos inerentes Unidade de Controle, assunto tratado no item denominado Unidade de Controle (cap. IX).

Todos os conceitos, componentes e tcnicas necessrios para projetar, implementar, simular e validar o projeto foram discutidos anteriormente. Nessa seo, os elementos e

428

subsistemas j propostos, simulados e validados nas sees anteriores sero integrados em um nica FPGA gerando uma mquina de 8 bis e com memria principal de 128 bytes.

429

Sadas de Controle Figura 8.17- Implementao da Arquitetura de Von Neumann Expandida no Software Projet Manager

Entradas de Controle

Endereos

430

Note, que as caractersticas da mquina no esto atrelados aos conceitos adquiridos para realizar essa implementao. Os conceitos so vlidos e suficientes para implementar uma mquina com quaisquer caractersticas que envolvam dimenses de memria ou

comprimento de palavra. Assim essa implementao tem o objetivo principal de consolidar os conceitos e tcnicas inerentes a Organizao e Arquitetura de Computadores atravs da proposta, sntese, implementao, simulao e validao de um exemplo real. A mquina obtida ser uma ferramenta que apoiar a disseminao de conceitos mais elaborados sobre organizao arquitetura de computadores, tais como: Unidade de Controle Fixo, Unidade de Controle Microprogramada, caractersticas da palavra de instruo, inteiros com sinal, linguagem de montagem, paralelismo, concorrncia, instrues de ponto flutuante, e insero de Unidades bsicas de Entrada e Sada, entre outros. Para tanto e quando necessrio, sero introduzidas modificaes na mquina da Figura 8.17. Tais como, novas operaes na UCP, simulaes sobre atividades concorrentes na arquitetura implementada, aumento da quantidade de Registradores Gerais, aumento da memria principal e insero de Unidade de Entrada e Sada. Esses conceitos sero detalhados no item Unidade de Controle (cap. IX).

8.4.1- Instrues e Seqncia de Microordens .


A mquina implementada executa possui as instrues de mquina relacionadas na Tabela 8.13. Nessa seo sero geradas seqncias de microordens necessrias para executar de forma correta algumas das instrues disponveis. Dentre elas destacamos as operaes matemticas: soma, subtrao, multiplicao, diviso e MOD (resto da diviso inteira) e as operaes relacionais Maior, Menor, Igualdade, Maior ou Igual e Menor ou Igual. As seqncias geradas sero teis para a implementao da Unidade de Controle. A insero do elemento Comparador de Magnitude na Unidade Lgica Aritmtica disponibilizou tanto a execuo das operaes relacionais quanto a implementao de

clusulas Condicionais e comandos repetitivos (iteraes). Toda instruo para ser executada necessita ser realizada em trs fases distintas; fase de busca dos operandos; fase de execuo da operao e fase de armazenamento do resultado.

431

A seqncia de microordens para realizar a busca de um operando foi proposta na primeiramente na tabela 8.14 e como uma operao de leitura (LER) da memria e reutilizada nas tabelas 8.15 e 8.16. A mesma seqncia de mocroordens ser utilizada para a busca dos operandos, no final da operao de leitura do operando ele ser armazenado em um dos registradores gerais. O primeiro operando ser sempre armazenado no Registrador Geral A e o segundo operando, quando existir, ser armazenado no Registrador Geral B. Essa ordem de escolha dos registradores gerais s poder ser modificada se for exigido pela operao em execuo. A escolha dos registradores gerais ser determinada pelo campo de operao da instruo. A seqncia de microordens para realizar o armazenamento do resultado da operao executada sobre os operandos foi proposta na Tabela 8.14 como uma operao de escrita (ARMAZENA) na memria e reutilizada nas tabelas 8.15 e 8.16. A seqncia de

microordens ser utilizada na operao de armazenamento do resultado de uma operao. A origem do dado no salvamento do resultado na memria (armazenamento) ser sempre o contedo do Registrador Acumulador. A fase de execuo da operao ser semelhante entre algumas instrues. Por exemplo, existe apenas uma diferena entre a realizao de uma operao soma e a realizao de uma operao subtrao. A diferena encontrada no passo 1 da fase de execuo da operao e est relacionada definio do cdigo da operao a ser executada na ULA. Em todas as outras fases, a seqncia de microordens idntica, mudando, evidentemente, os endereos e os valores dos operandos quando necessrio. As diferenas nas operaes relacionais resumem-se, tambm, ao passo que define o cdigo da operao em execuo na ULA. A fase de busca de operandos e armazenamento dos resultados so sempre muito semelhantes em todas as instrues da UCP. As instrues de Diviso e MOD so executadas simultaneamente na UCP. A diferena no est somente no cdigo da operao a ser executada na ULA, mas tambm, na origem do resultado da operao executada. Na operao MOD, o resultado da operao est contido no Registrador Acumulador, e o resultado da operao Diviso est contido no contador UP/DOWN da UCP. Assim, as escolhas dos caminhos a serem percorridos pelos resultados das duas operaes dentro da UCP so diferentes.

432

Observa-se que para assimilar e gerar as seqncias de microordens indispensvel dominar a arquitetura proposta ou a arquitetura implementada pela equipe do aluno. Para tanto necessrio conhecer cada um dos elementos contidos na implementao.

8.4.1.1- Seqncia de Microordens da Operao Soma


A seqncia de microordens e atividades que devem ser respeitadas para realizar uma operao de Soma na mquina da Figura 8.17 mostrada na tabela 8.14. Como exemplo, ser executada a instruo a abaixo com as seguintes condies iniciais: W:= X + Y; - o endereo da varivel X ABH; e o seu valor 59H; - o endereo da varivel Y ACH; e o seu valor 4FH; - o endereo da varivel W ADH. O algoritmo que executa a operao soma nas condies acima assume a seguinte forma na arquitetura implementada: Ler(X); Armazenar o X no endereo ABH; Salvar X no REG_A; Ler(Y); Armazenar o Y no endereo ACH; Salvar Y no REG_B; AC := REG_A + REG_B Armazenar AC no Endereo ADH (W); Mostre ADH.

Fase L E R X
Armazenar
X

Passo

1 2 3 4 5 6

Seqncia de Controle da Operao SOMA Comentrio / Atividade - Selecionar caminho do Dado; - Disponibilizar valor de X na Entrada Externa; - Disponibilizar Endereo de X; - Ativar Enable do Registrador de Endereo; - Ativar LOAD do Registrador de Endereo; - Ativar Enable do Registrador de Entrada de Dados; - Gerar/ aguardar Borda de subida no relgio (clock) - Ativar Enable da Memria; - Definir operao de Escrita na Memria; - Gerar/ aguardar Borda de subida no relgio (clock)

Microordem - S_EXT_AC = 1; - X = 59H; - END = ABH; - E_R_END = 1; - L_R_END= 1; - E_R_D_I = 1; - Clock = - E_MEM = 1; - WE =1; - Clock =

433

Fase B U S C A de X

Passo

1 2 3 4 5 6 L E R Y
Armazenar
Y em 7BH

Comentrio / Atividade - Disponibilizar Endereo de X; - Ativar Enable do Registrador de Endereo; - Ativar LOAD do Registrador de Endereo; - Aguardar Borda de subida no relgio (clock); - Ativar Enable da Memria; - Definir operao de Leitura na Memria; - Ativar Enable do Reg. de Sada de Dados da Mem.; - Aguardar Borda de subida no relgio (clock); - Selecionar caminho de X at o Reg. Geral A;

1 2 3 4 5 6 1

B U S C A de Y

2 3 4 5 6 1 2 3 1 2 3 4 5 6

Execuo A R M A Z E N A

Microordem - END = ABH; - E_R_END = 1; - L_R_END= 1; - Clock = ; - E_MEM =1; - WE = 0; - E_R_D_O = 1; - Clock = ; - S_REG_A_B = 0; - S_MULT_UCP= 0; - Ativar Enable do Reg. Geral A; - E_REG_A =1; - Aguardar Borda de subida no relgio (clock); - Clock = ; - Selecionar caminho do Dado; - S_EXT_AC = 1; - Disponibilizar valor de Y na Entrada Externa; - Y = 4FH; - Disponibilizar Endereo de Y; - END = ACH; - Ativar Enable do Registrador de Endereo; - E_R_END = 1; - Ativar LOAD do Registrador de Endereo; - L_R_END= 1; - Ativar Enable do Registrador de Entrada de Dados; - E_R_D_I = 1; - Gerar/ aguardar Borda de subida no relgio (clock) - Clock = - Ativar Enable da Memria; - E_MEM = 1; - Definir operao de Escrita na Memria; - WE =1; - Gerar/ aguardar Borda de subida no relgio (clock) - Clock = - Disponibilizar Endereo de Y; - END = ACH; - Ativar Enable do Registrador de Endereo; - E_R_END = 1; - Ativar LOAD do Registrador de Endereo; - L_R_END= 1; - Aguardar Borda de subida no relgio (clock); - Clock = ; - Ativar Enable da Memria; - E_MEM =1; - Definir operao de Leitura na Memria; - WE = 0; - Ativar Enable do Reg. de Sada de Dados da Mem.; - E_R_D_O = 1; - Aguardar Borda de subida no relgio (clock); - Clock = ; - Selecionar caminho de Y at o Reg. Geral B; - S_REG_A_B = 1; - S_MULT_UCP= 0; - Ativar Enable do Reg. Geral B; - E_REG_B =1; - Aguardar Borda de subida no relgio (clock); - Clock = ; - Disponibilizar cdigo da Operao SOMA; - ADD_SUB = 1; - Ativar Enable do Registrador Acumulador; - E_AC = 1; - Gerar/ aguardar Borda de subida no relgio (clock); - Clock = ; - Selecionar caminho do Dado; - S_EXT_AC = 0; - Disponibilizar Endereo de W; - END = ADH; - Ativar Enable do Registrador de Endereo; - E_R_END = 1; - Ativar LOAD do Registrador de Endereo; - L_R_END= 1; - Ativar Enable do Registrador de Entrada de Dados; - E_R_D_I = 1; - Gerar/ aguardar Borda de subida no relgio (clock) - Clock = - Ativar Enable da Memria; - E_MEM = 1; - Definir operao de Escrita na Memria; - WE =1; -Gerar/ aguardar Borda de subida no relgio (clock) - Clock =

434

Fase

Passo

1 B U S C A de W 5 6 2 3 4

Comentrio / Atividade - Disponibilizar Endereo de W; - Ativar Enable do Registrador de Endereo; - Ativar LOAD do Registrador de Endereo; - Aguardar Borda de subida no relgio (clock); - Ativar Enable da Memria; - Definir operao de Leitura na Memria; - Ativar Enable do Reg. de Sada de Dados da Mem.; - Aguardar Borda de subida no relgio (clock); - Selecionar caminho de Y at o Reg. Geral B; - Ativar Enable do Reg. Geral B; - Aguardar Borda de subida no relgio (clock);

Microordem - END = ADH; - E_R_END = 1; - L_R_END= 1; - Clock = ; - E_MEM =1; - WE = 0; - E_R_D_O = 1; - Clock = ; - S_REG_A_B = 1; - S_MULT_UCP= 0; - E_REG_B =1; - Clock = ;

Tabela 8.14- Operao SOMA Seqncia de Atividades

8.4.1.2- Seqncia de Microordens das Operaes Relacionais.


A seqncia de microordens e atividades, que deve ser respeitada para realizar as operaes Relacionais Maior, Menor, Igualdade, Menor ou Igual e Maior ou Igual, na

mquina da Figura 8.17 mostrada na Tabela 8.15. Note que a diferena entre a seqncia de microordens para cada uma das operaes acontece apenas na definio do cdigo da operao para a ULA. As operaes relacionais possibilitam a implementao de clusulas condicionais e comandos repetitivos. Para exemplificar ser implementado um algoritmo que escolha entre duas variveis, aquela de maior valor. Para exemplificar considere as seguintes condies iniciais: - o endereo da varivel X 7AH; e o seu valor F2H; - o endereo da varivel Y 7BH; e o seu valor 45H; - o endereo da varivel W AAH. O algoritmo assume a seguinte forma na arquitetura implementada: Ler(X); Armazenar o X no endereo 7AH; REG_A := X; Ler(Y); Armazenar Y no Endereo 7BH; Armazenar Y no Endereo AAH; REG_B := Y; Se REG_A > REG_B Ento { AC := REG_A; Armazenar AC=X no Endereo AAH}; Mostre AAH.

435

Fase L E R X
Armazenar
X

B U S C A de X
REG_A:=X

L E R Y
Armazenar
Y em 7BH

Armazenar
Y em AAH

Seqncia de Controle das Operaes RELACIONAIS Passo Comentrio / Atividade Microordem - Selecionar caminho do Dado; - S_EXT_AC = 1; 1 - Disponibilizar valor de X na Entrada Externa; - X = F2H; - Disponibilizar Endereo de X; - END = 7AH; 2 - Ativar Enable do Registrador de Endereo; - E_R_END = 1; - Ativar LOAD do Registrador de Endereo; - L_R_END= 1; 3 - Ativar Enable do Registrador de Entrada de Dados; - E_R_D_I = 1; 4 - Gerar/ aguardar Borda de subida no relgio (clock) - Clock = - Ativar Enable da Memria; - E_MEM = 1; 5 - Definir operao de Escrita na Memria; - WE =1; 6 - Gerar/ aguardar Borda de subida no relgio (clock) - Clock = - Disponibilizar Endereo de X; - END = 7AH; 1 - Ativar Enable do Registrador de Endereo; - E_R_END = 1; - Ativar LOAD do Registrador de Endereo; - L_R_END= 1; 2 - Aguardar Borda de subida no relgio (clock); - Clock = ; - Ativar Enable da Memria; - E_MEM =1; 3 - Definir operao de Leitura na Memria; - WE = 0; - Ativar Enable do Reg. de Sada de Dados da Mem.; - E_R_D_O = 1; 4 - Aguardar Borda de subida no relgio (clock); - Clock = ; - Selecionar caminho de X at o Reg. Geral A; - S_REG_A_B = 0; 5 - S_MULT_UCP= 0; - Ativar Enable do Reg. Geral A; - E_REG_A =1; 6 - Aguardar Borda de subida no relgio (clock); - Clock = ; - Selecionar caminho do Dado; - S_EXT_AC = 1; 1 - Disponibilizar valor de Y na Entrada Externa; - Y = 45H; - Disponibilizar Endereo de Y; - END = 7BH; 2 - Ativar Enable do Registrador de Endereo; - E_R_END = 1; - Ativar LOAD do Registrador de Endereo; - L_R_END= 1; 3 - Ativar Enable do Registrador de Entrada de Dados; - E_R_D_I = 1; 4 - Gerar/ aguardar Borda de subida no relgio (clock) - Clock = - Ativar Enable da Memria; - E_MEM = 1; 5 - Definir operao de Escrita na Memria; - WE =1; 6 - Gerar/ aguardar Borda de subida no relgio (clock) - Clock = - Disponibilizar Endereo de Y; - END = AAH; 1 - Ativar Enable do Registrador de Endereo; - E_R_END = 1; - Ativar LOAD do Registrador de Endereo; - L_R_END= 1; 2 - Gerar/ aguardar Borda de subida no relgio (clock) - Clock = - Ativar Enable da Memria; - E_MEM = 1; 3 - Definir operao de Escrita na Memria; - WE =1; 4 - Gerar/ aguardar Borda de subida no relgio (clock) - Clock =

436

Fase B U S C A de Y

Passo

1 2 3 4 5

Comentrio / Atividade - Disponibilizar Endereo de Y; - Ativar Enable do Registrador de Endereo; - Ativar LOAD do Registrador de Endereo; - Aguardar Borda de subida no relgio (clock); - Ativar Enable da Memria; - Definir operao de Leitura na Memria; - Ativar Enable do Reg. de Sada de Dados da Mem.; - Aguardar Borda de subida no relgio (clock); - Selecionar caminho de Y at o Reg. Geral B; - Ativar Enable do Reg. Geral B; - Aguardar Borda de subida no relgio (clock); - Se X > Y - Limpar REG_B (REG_B := 0) - Disponibilizar cdigo da Operao SOMA; - Ativar Enable do Registrador Acumulador; - Gerar/ aguardar Borda de subida no relgio (clock); - Selecionar caminho do Dado; - Disponibilizar Endereo; - Ativar Enable do Registrador de Endereo; - Ativar LOAD do Registrador de Endereo; - Ativar Enable do Registrador de Entrada de Dados; - Gerar/ aguardar Borda de subida no relgio (clock) - Ativar Enable da Memria; - Definir operao de Escrita na Memria; - Gerar/ aguardar Borda de subida no relgio (clock) - Disponibilizar Endereo de W; - Ativar Enable do Registrador de Endereo; - Ativar LOAD do Registrador de Endereo; - Aguardar Borda de subida no relgio (clock); - Ativar Enable da Memria; - Definir operao de Leitura na Memria; - Ativar Enable do Reg. de Sada de Dados da Mem.; - Aguardar Borda de subida no relgio (clock); - Selecionar caminho de Y at o Reg. Geral B; - Ativar Enable do Reg. Geral B; - Aguardar Borda de subida no relgio (clock);

REG_B:=Y

Execuo

A R M A Z E N A

6 1 2 3 4 5 1 2 3 4 5 6 1

Maior

B U S C A de W

2 3 4 5 6

Microordem - END = 7BH; - E_R_END = 1; - L_R_END= 1; - Clock = ; - E_MEM =1; - WE = 0; - E_R_D_O = 1; - Clock = ; - S_REG_A_B = 1; - S_MULT_UCP= 0; - E_REG_B =1; - Clock = ; - GT = 1; - CL_REG_B - ADD_SUB = 1; - E_AC = 1; - Clock = ; (AC:= X) - S_EXT_AC = 0; - END = AAH; - E_R_END = 1; - L_R_END= 1; - E_R_D_I = 1; - Clock = - E_MEM = 1; - WE =1; - Clock = - END = AAH; - E_R_END = 1; - L_R_END= 1; - Clock = ; - E_MEM =1; - WE = 0; - E_R_D_O = 1; - Clock = ; - S_REG_A_B = 1; - S_MULT_UCP= 0; - E_REG_B =1; - Clock = ;

Tabela 8.15- Operaes RELACIONAIS Seqncia de Atividades

437

8.4.1.3- Seqncia de Microordens da Operao Multiplicao


A seqncia de microordens e atividades que deve ser respeitada para realizar uma operao de Multiplicao de dois inteiros sem sinal na mquina da Figura 8.17 mostrada na tabela 8.16. A operao de multiplicao ser implementada primeiramente atravs da utilizao do algoritmo de multiplicao utilizando Somas Sucessivas. Sero desenvolvidos, oportunamente, algoritmos mais eficientes, que implementam a operao de multiplicao dois inteiros com sinal e, tambm a operao de multiplicao em ponto flutuante. O algoritmo de multiplicao utilizando somas sucessivas adequado para validar a mquina, pois utiliza todos os recursos disponveis na arquitetura implementada, incluindo a execuo de comandos repetitivos e clusulas condicionais. Para exemplificar ser implementado o algoritmo de Somas Sucessivas que realiza execuo da seguinte expresso: W := X * Y O algoritmo assume a seguinte forma na arquitetura implementada.

Ler(X); Armazenar X no endereo 7AH; Salvar X no REG_A; Ler(Y); Armazenar Y no endereo 7BH; Salvar Y no REG_B; Se Y > X Ento { Salvar o valor de X no Registrador Geral A; Salvar o valor de Y no contador UP/DOWN; Zerar Registrador Geral B }; Enquanto Contador UP/DOWN > 0 Faa { AC := AC + REG_B; REG_B := AC }; Armazenar AC no Endereo W; Mostre W.
O detalhamento da seqncia de microordens est apresentado na tabela 8.16. Para tanto, esto sendo consideradas as seguintes condies iniciais: - o endereo da varivel X 7AH; e o seu valor 59H; - o endereo da varivel Y 7BH; e o seu valor 4FH; - o endereo da varivel W ADH.

438

Fase L E R X
Armazenar

Passo

1 2 3 4 5 6

X em 7AH

B U S C A de X
Salvar X em REG_A

1 2 3 4 5 6

L E R Y
Armazenar
Y em 7BH

1 2 3 4 5 6

B U S C A de Y
Salvar Y em REG_B

1 2 3 4 5 6

Seqncia de Controle da operao MULTIPLICAO Comentrio / Atividade Microordem - Selecionar caminho do Dado; - S_EXT_AC = 1; - Disponibilizar valor de X na Entrada Externa; - X = 59H - Disponibilizar Endereo de X; - END = 7AH; - Ativar Enable do Registrador de Endereo; - E_R_END = 1; - Ativar LOAD do Registrador de Endereo; - L_R_END= 1; - Ativar Enable do Registrador de Entrada de Dados; - E_R_D_I = 1; - Gerar/ aguardar Borda de subida no relgio (clock) - Clock = - Ativar Enable da Memria; - E_MEM = 1; - Definir operao de Escrita na Memria; - WE =1; - Gerar/ aguardar Borda de subida no relgio (clock) - Clock = - Disponibilizar Endereo de X; - END = 7AH; - Ativar Enable do Registrador de Endereo; - E_R_END = 1; - Ativar LOAD do Registrador de Endereo; - L_R_END= 1; - Aguardar Borda de subida no relgio (clock); - Clock = ; - Ativar Enable da Memria; - E_MEM =1; - Definir operao de Leitura na Memria; - WE = 0; - Ativar Enable do Reg. de Sada de Dados da Mem.; - E_R_D_O = 1; - Aguardar Borda de subida no relgio (clock); - Clock = ; - Selecionar caminho de X at o Reg. Geral A; - S_REG_A_B = 0; - S_MULT_UCP= 0; - Ativar Enable do Reg. Geral A; - E_REG_A =1; - Aguardar Borda de subida no relgio (clock); - Clock = ; - Selecionar caminho do Dado; - S_EXT_AC = 1; - Disponibilizar valor de Y na Entrada Externa; - Y = 4FH; - Disponibilizar Endereo de Y; - END = 7BH; - Ativar Enable do Registrador de Endereo; - E_R_END = 1; - Ativar LOAD do Registrador de Endereo; - L_R_END= 1; - Ativar Enable do Registrador de Entrada de Dados; - E_R_D_I = 1; - Gerar/ aguardar Borda de subida no relgio (clock) - Clock = - Ativar Enable da Memria; - E_MEM = 1; - Definir operao de Escrita na Memria; - WE =1; - Gerar/ aguardar Borda de subida no relgio (clock) - Clock = - Disponibilizar Endereo de Y; - END = 7BH; - Ativar Enable do Registrador de Endereo; - E_R_END = 1; - Ativar LOAD do Registrador de Endereo; - L_R_END= 1; - Aguardar Borda de subida no relgio (clock); - Clock = ; - Ativar Enable da Memria; - E_MEM =1; - Definir operao de Leitura na Memria; - WE = 0; - Ativar Enable do Reg. de Sada de Dados da Mem.; - E_R_D_O = 1; - Aguardar Borda de subida no relgio (clock); - Clock = ; - Selecionar caminho de Y at o Reg. Geral B; - S_REG_A_B = 1; - S_MULT_UCP= 0; - Ativar Enable do Reg. Geral B; - E_REG_B =1; - Aguardar Borda de subida no relgio (clock); - Clock = ;

439

Fase P a s s o 1 Execuo Salvar menor 2 no 3 CONT_UCP 4 5 (1) 6(2) 7(3) Iteraes 8(4) 9(5)

Comentrio / Atividade - Disponibilizar cdigo da Op. MULTIPLICAO; - Ativar LOAD do Contador UP/DOWN da UCP; - Aguardar Borda de subida no relgio (clock); - Limpa REG_A ou REG_B (operando menor) - EnquantoDetecta_Zero = 0 - Disponibilizar cdigo da operao SOMA - Ativar Enable do Registrador Acumulador; - Gerar clock; (AC:= REG_A + REG_B); - Ativar ENABLE do contador UP/DOWN da UCP; 10(6) 1); Gerar clock; (REG_menor:=AC; CONT_UCP:= CONT_UCP1 2 3 4 5 6 - Selecionar caminho do Dado; - Disponibilizar Endereo de W; - Ativar Enable do Registrador de Endereo; - Ativar LOAD do Registrador de Endereo; - Ativar Enable do Registrador de Entrada de Dados; - Gerar/ aguardar Borda de subida no relgio (clock) - Ativar Enable da Memria; - Definir operao de Escrita na Memria; -Gerar/ aguardar Borda de subida no relgio (clock)

Microordem - S_MULT_UCP = 1; - L_CONT_UCP = 1; - Clock = ; - Clear_Menor = 1; - Detecta_Zero = 0; - ADD_SUB =1; - E_AC = 1; - Clock = ; - E_CON_UCP = 1; - Clock = ; - S_EXT_AC = 0; - END = ADH; - E_R_END = 1; - L_R_END= 1; - E_R_D_I = 1; - Clock = - E_MEM = 1; - WE =1; - Clock =

A R M A Z E N A

Tabela 8.16- Operao MULTIPLICAO Seqncia de Atividades

440

Anexo VIII.1 Projetos Propostos Projeto 8.1 ULA de 32 bits


Sintetizar, projetar, implementar e validar atravs de simulao uma Unidade Lgica

Aritmtica capaz de realizar as operaes de soma e subtrao sobre palavras de 32 bits. O circuito dever tambm conter dois registradores gerais para conter os operandos de 32 bits e um registrador acumulador de 32 bits para conter o resultado das operaes realizadas pelo circuito somador/subtrator. A figura P81-1 mostra em diagrama de blocos uma sugesto da estrutura do projeto solicitado.

Registrador Geral A

Registrador Geral B

ULA
Registrador Acumulador

Figura P81-1- Diagrama de blocos de uma Unidade Aritmtica de 32 bits


Observaes: a- Para realizar a operao de subtrao devem ser utilizados meios somadores completos. Assim, a subtrao dever ser transformada atravs em uma operao de soma em complemento do maior dgito da base (complemento de 1). b- O relatrio dever seguir o formato sugerido no documento Roteiro para a Gerao de Relatrios de Projetos (Anexo VII-2).

441

Projeto 8.2 UCP de 32 Bits Estruturas Iterativas e Condicionais (Operao de Multiplicao)


Utilizando circuito da ULA de 32 bits desenvolvida e implementada no projeto 8.1, sintetize, projete, implemente, simule e valide uma UCP de 32 bits contendo os subsistemas necessrios para permitir a incluso de operaes relacionais, comandos (estruturas) condicionais e comandos iterativos. Para tanto, devem ser inseridos no circuito da ULA de 32 bits, componentes que permitam a execuo dos conjuntos de comandos e instrues solicitados. A figura P82-1 mostra em diagrama de blocos a proposta de uma arquitetura para o projeto solicitado. Relacione, descreva a forma de funcionamento e comente a funo exercida por cada componente inserido para a ULA de 32 bits realizar os comandos e operaes solicitadas. Para validar o circuito desenvolvido, desenvolver um algoritmo para inserir na UCP a operao de multiplicao de dois nmeros inteiros. Para tanto, deve ser utilizado o algoritmo que realiza a operao multiplicao atravs de somas sucessivas. Para auxiliar a validao do circuito, realize a simulao da seguinte instruo: W := A7B4C02F(H) * 5(H) Relacione e comente a seqncia de micro-ordens necessrias para executar a operao de multiplicao no circuito validado. Observaes: a- o algoritmo deve otimizar a quantidade de somas necessrias para realizar a multiplicao atravs do algoritmo de somas sucessivas. Por exemplo, a instruo: W := A7B4C02F(H) * 5(H) deve ser implementada atravs da realizao de 5 somas do valor A7B4C02F(H. Ou seja: W:= A7B4C02F(H + A7B4C02F(H + A7B4C02F(H + A7B4C02F(H + A7B4C02F(H b- O relatrio dever seguir o formato sugerido no documento Roteiro para a Gerao de Relatrios de Projetos (Anexo VII-2).

442

Para a Memria Da Memria

Multiplex

Reg. A

Reg. B

Multiplex

Comparador de Magnitude

UP/DOWN

ULA

Multiplex

Acumulador

Figura P82-1- Representao em diagrama de blocos de proposta do circuito solicitado.

443

Projeto 8.3

UCP de 32 Bits Estruturas Iterativas e Condicionais (Operao de Diviso)


Utilizando circuito da UCP de 32 bits desenvolvida e implementada no projeto 8.2, gerar a seqncia de microordens (microporograma) necessrias para dotar a UCP com a operao diviso de dois nmeros inteiros sem sinal de 32 bits. Relacione, descreva a forma de funcionamento e comente a funo exercida por cada componente inserido para a ULA de 32 bits realizar a operao de diviso Para validar o circuito desenvolvido, executar o microprograma (seqncia de microordens) para realizar a seguinte operao de diviso: W := AAAAAAAA DIV 33333333 Observaes: a- O projeto da operao de diviso inserido na UCP dever prever a diviso por zero; b- O relatrio dever seguir o formato sugerido no documento Roteiro para a Gerao de Relatrios de Projetos (Anexo VII-2).

444

Projeto 8.4 Mquina de 32 bits com Arquitetura de Von-Neumann


O principal objetivo desse texto capacitar o leitor a projetar, dimensionar, implementar e avaliar sistemas computacionais de acordo com as necessidades e caractersticas de uso dos mesmos. Uma arquitetura de computador deve ser avaliada ou dimensionada de acordo com as caractersticas de aplicao ou uso das mesmas. Ou seja, no podemos simplesmente afirmar que uma arquitetura eficiente (boa) ou ineficiente (ruim) se no for considerada a aplicao na qual ela est sendo empregada. O projeto em tela ser utilizado tanto para consolidar os conceitos e tcnicas de organizao e arquitetura de computadores j repassados aos alunos; quanto para projetar, implementar, validar o hardware de uma mquina com todos os subsistemas existentes em arquitetura de Von Neumann e a conseqente avaliao de desempenho, medida em MIPS, da mesma. A mquina ser de utilidade para aplicar os conceitos contidos no item Unidade de Controle (cap. IX). Para tanto, os subsistemas j desenvolvidos e validados separadamente (UCP-32 e RAM-2048x32) podem ser reutilizados atravs da organizao e integrao dos mesmos em um nico sistema que constituir a mquina solicitada. A mquina a ser projetada dever conter as seguintes caractersticas bsicas: - UCP de 32 bits contendo: dois registradores gerais; um registrador acumulador, uma ULA de 32 bits com capacidade para executar instrues aritmticas e relacionais; subsistemas para auxiliar a execuo de instrues condicionais e iterativas; - Memria RAM esttica de 2048 palavras de 32 bits. A Figura P84.1 mostra, em diagrama de blocos, uma sugesto de arquitetura para a mquina solicitada. O trecho de programa que segue, escrito em uma linguagem de alto nvel genrica, dever ser utilizado para simular e validar a mquina implementada. Para tanto, deve ser gerada e comentada a seqncia de microordens necessrias para executar o programa na mquina obtida. READ(X); READ(Y); R := X + Y; S := X Y; WRITE(R); WRITE(S)

445

Observaes: a- Os endereos das variveis contidas no trecho de programa devem obedecer aos critrios contidos na tabela abaixo: Varivel Endereo Valor X Banco zero da memria 31E7CD39 (H) Y Banco zero da memria 1EF05248 (H) R Banco um da memria calculado S Banco dois da memria calculado b- O relatrio dever seguir o formato sugerido no documento Roteiro para a Gerao de Relatrios de Projetos (Anexo VII-2). Entrada Externa multiplex

Barramento de Dados

Seleo

Instruo

Endereo s

Memria

Controles L/E

Barramento de Controle

Sada Externa Reg.Geral A Reg. Geral B

Habilita A/B

Operao ULA

Reg. Acumulador

Habilita AC

Unidade de Controle (UC) Figura P84.1 Diagrama e blocos de uma arquitetura de Von-Neumann genrica.

446

Projeto 8.5 Mquina de 32 bits com Arquitetura de Von-Neumann (Operaes Iterativas)


O principal objetivo do texto o de capacitar o leitor a projetar, dimensionar, implementar e avaliar sistemas computacionais de acordo com as necessidades e caractersticas de uso dos mesmos. Uma arquitetura de computador deve ser avaliada ou dimensionada de acordo com as caractersticas de sua aplicao. Ou seja, no podemos simplesmente afirmar que uma

arquitetura eficiente (boa) ou ineficiente (ruim) se no for considerada a aplicao na qual ela est sendo empregada. O projeto em tela ser utilizado tanto para consolidar os conceitos e tcnicas de organizao e arquitetura de computadores j repassados aos alunos, quanto para projetar, implementar, validar o hardware de uma mquina com todos os subsistemas existentes em uma arquitetura de Von Neumann clssica. Alm da conseqente avaliao de desempenho, medida em MIPS, da mesma. A mquina ser de utilidade para aplicar os conceitos contidos no captulo IX (Unidade de Controle). Para tanto, os subsistemas j desenvolvidos e validados separadamente nos projetos UCP-32 (projetos: 8.1; 8.2; 8.3 e 8.4) e RAM-1024x32 (projeto 7.1, contido no captulo VII) devem ser reutilizados para implementar a arquitetura da mquina solicitada. A Figura P85.1 mostra de forma sinttica os principais subsistemas existentes na arquitetura da mquina proposta. A Figura P85.2 mostra a UCP solicitada no projeto 8.2 (UCP de 32 bits - Estruturas Iterativas e Condicionais) em diagrama de blocos. A Figura P85.3 mostra, tambm em diagrama de blocos, a memria RAM solicitada no projeto 7.1 (RAM esttica 2Kx32). A mquina a ser projetada dever conter as seguintes caractersticas bsicas: - UCP de 32 bits contendo: dois registradores gerais; um registrador acumulador, uma ULA de 32 bits com capacidade para executar instrues aritmticas e relacionais; subsistemas para auxiliar a execuo de instrues condicionais e iterativas; - Memria RAM esttica de 2048 palavras de 32 bits.

447

O trecho de programa que segue, escrito em uma linguagem de alto nvel genrica, dever ser utilizado para simular e validar a mquina implementada. Para tanto, deve ser gerada e comentada a seqncia de microordens necessrias para executar o programa na mquina obtida. READ(X); READ(Y); Produto := X * Y; READ(X); READ(Z); Quociente := X DIV Z; Resto := X MOD Z; WRITE(Produto); WRITE(Quociente); Write(Resto)

Dados

Entrada de Dados

Equipamento

E/S
multiplexador

Controle

Dados Controle Subsistema de Memria Esttica (2048 x 32)


Equipamento

Endereo

Sada de Dados

E/S

UCP 32
Dados

Unidade De Controle

Figura P85.1 Diagrama de Blocos da Arquitetura Proposta

448

Para a Memria Da Memria

Multiplex

Reg. A

Reg. B

Multiplex

Comparador de Magnitude

UP/DOWN

ULA

Multiplex

Acumulador

Figura P85.2- Diagrama de blocos da UCP-32, solicitada no Projeto 8.2

449

Dados Registrador de Entrada de Dados

Registrador de Endereo

Endereos

de Endereo

Decodificador

Registradores de Memria

Unidade de Controle

Multiplexador

Registrador de Sada de Dados Dados

Figura P85.3- Diagrama de blocos da memria solicitada no Projeto 7.1


Observaes: a- As variveis so todas do tipo Inteiro; b- Os endereos das variveis contidas no trecho de programa devem obedecer aos critrios contidos na tabela abaixo: Varivel X Y Z Produto Quociente Resto Endereo Banco zero da memria Banco zero da memria Banco zero da memria Banco um da memria Banco dois da memria Banco trs da memria Valor 2DE7 (H) 4 (H) 0BFC (H) calculado calculado calculado

b- O relatrio dever seguir o formato sugerido no documento Roteiro para a Gerao de Relatrios de Projetos (Anexo VII-2).

450

Anexo VIII.2 Questes de Mltipla Escolha


1- A figura que segue mostra em diagrama de blocos uma Unidade Central de Processamento. Calcule o tempo de execuo de uma operao soma (W:=X+Y) e tambm a capacidade de execuo de operaes soma em MIPS (milhes de instrues por segundo) na arquitetura. Para tanto utilize as seguintes condies iniciais: tempo de leitura na memria (busca de operando) = 5ns (nanosegundos); tempo de escrita na memria = 9ns; tempo de atraso dos multiplex = 1ns, tempo de atraso dos registradores = 2ns; tempo de atraso da ULA = 5ns; tempos de atraso do Comparador de Magnitude e Contador UP/DOWN = 3ns. (Obs. 1ns = 10-9 segundos). Escrita na Memria Leitura da Memria Controle Multiplex S0

Ck

Ck

Reg. A

E_A

Reg. B
E_B

Multiplex S1

Comparador de Magnitude
Ck

UP/DOWN
L

ULA

Cd_Op

Unidade de Controle
Multiplex S2 Ck

Acumulador

E_Ac

Diagrama de Blocos de uma Unidade Central de Processamento

451

(A) (B) (C) (D) (E)

25ns; 41,66 MIPS 32ns; 31,25 MIPS 33ns; 30,3 MIPS 25ns; 40 MIPS Nenhuma das anteriores

Respostas Alternativa Questo Correta 1 D

452

Anexo VIII.3 Exerccios Propostos


1- Para responder a essa questo, considere a modificao enfatizada na cor amarela na figura que segue mostra a mquina com arquitetura de Von Neumann desenvolvida no projeto 8.2. - Retirar a realimentao na entrada do registrador geral A proveniente da sada do registrador Acumulador. Comentar os efeitos dessa mudana sobre a arquitetura original (benefcios e custos). Entrada Externa multiplex

Endereos

Memria

XX
multiplex

Sada Externa

Reg.Geral A

Reg. Geral B

ULA

ADD/SUB

Reg. Acumulador

Arquitetura de Von Neumann em Diagrama de Blocos

453

2- A figura que segue mostra em diagrama de blocos a Unidade Central de Processamento (UCP) desenvolvida em sala de aula. Utilizando as informaes contidas na figura , calcule a capacidade de execuo de operaes soma em MIPS na arquitetura. Para tanto utilize as seguintes condies iniciais: tempo de leitura na memria = 7ns; tempo de escrita na memria = 8ns; tempo de atraso dos multiplex = 1ns, tempo de atraso dos registradores=2ns; tempo de atraso da ULA=2ns; tempos de atraso do Comparador de Magnitude e Contador UP/DOWN = 2ns. Considere tambm que os valores dos operandos (variveis) X e Y j esto contidos na memria. W:=X +Y (valor de X=AFH e Y:=3CH, endereos X 3AH, Y 3BH e W 3CH)

Multiplex

S0

Ck

Ck

Reg. A

E_A

Reg. B
E_B

Multiplex S1

Comparador de Magnitude
Ck

UP/DOWN
L

ULA

Cd_Op

Unidade de Controle
Multiplex S2 Ck

Acumulador

E_Ac

Diagrama de Blocos de uma Unidade Central de Processamento (UCP)

454

3- No Projeto 8.1, foi solicitado e previsto a implementao e simulao de um circuito combinacional para realizar a soma e subtrao de duas palavras de 32 bits (ULA de 32 bits), utilizando somente elementos Somadores Completos. Comente as seguintes questes:

a- Descreva e comente a tcnica de obteno da operao de subtrao utilizando


apenas circuitos somadores completos;

b- Utilizando um diagrama de blocos, descreva e comente a soluo na definio do


controle utilizado para realizar a escolha entre a execuo de uma operao Soma e a execuo de uma operao Subtrao implementadas no projeto;

c- Utilizando o mesmo diagrama de blocos gerado no item c, descreva e comente a


soluo utilizada na implementao da sada de overflow e/ou underflow do circuito projetado.

4- Sugerir ao menos uma nova operao que pode ser inserida na UCP desenvolvida. Descrever e comentar forma de execuo ou o algoritmo (seqncia de microordens) da nova operao. Obs. A operao sugerida deve ser diferente das contidas na tabela 8.13 do item 8.2.6 do desse texto.

5- Introduzir na Arquitetura de Von Neumann simplificada mostrada na figura 8.1 a seguinte modificao: Trocar a ULA que realiza somente a operao soma de dois operandos por uma ULA que realize as operaes de soma e subtrao (ADD/SUB). Comentar os efeitos dessa mudana sobre a arquitetura original (benefcios e custos).

455

'A imaginao muito mais importante que o conhecimento'. (Albert Einstein)

Você também pode gostar