• Nenhum resultado encontrado

A Multidisciplinaridade na Área de Hardware na Graduação em Engenharia da Computação. Resumo. 1 Introdução

N/A
N/A
Protected

Academic year: 2021

Share "A Multidisciplinaridade na Área de Hardware na Graduação em Engenharia da Computação. Resumo. 1 Introdução"

Copied!
8
0
0

Texto

(1)

A Multidisciplinaridade na Área de Hardware na Graduação em

Engenharia da Computação

Edson Pedro Ferlin

Professor do Curso de Engenharia da Computação Centro Universitário Positivo - UnicenP

Caixa Postal 6432 - CEP 80.020-010 Curitiba-Paraná-Brasil

ferlin@unicenp.br

Resumo

A tendência atual no ensino é utilizar a multidisciplinaridade como meio para que o aluno possa compreender os conceitos envolvidos em uma disciplina em conjunto com outros provenientes das demais, contextualizando o conhecimento, evitando, desta forma, a sua segmentação.

Neste sentido, os alunos da disciplina de Sistemas Digitais, no curso de Engenharia da Computação, tem como atividade de projeto, a elaboração de uma CPU microprogramada com aspecto didático, que além de abordar os conceitos relativos a sistema digitais, o aluno pode assimilar alguns conhecimentos relativos a Microprocessadores, disponibilizando um ambiente de descoberta e de exploração, contribuindo para uma melhor percepção das possibilidades da área.

1 Introdução

Em muitos cursos de graduação, que têm disciplinas na área de eletrônica digital, como por exemplo Eng. da Computação e Eng. Elétrica, tais disciplinas são, muitas vezes, segmentadas, não fornecendo um contínuo em termos de conhecimento, dificultando o aprendizado por parte dos alunos.

Para evitar isto, os alunos da Eng. da Computação, têm um projeto teórico-prático, desenvolvido no final da disciplina de Sistemas Digitais, no qual utilizam os conhecimentos adquiridos nela, como base para o projeto, juntamente com outros provenientes da disciplina de Microprocessadores, passados pelo professor. Isto permite criar uma ligação entre estas duas disciplinas, evitando, desta forma, a segmentação do conhecimento e gerando um ganho no aprendizado.

A atividade de projeto consiste na elaboração de uma CPU (Central Processing Unit) [CHR-96, LIM-98, TAN-92] microprogramada de 4 bits, também conhecida por processador, dispositivo este que é o cérebro dos sistemas computadorizados, sendo responsável por todo o processamento e tratamento das informações, e bem como do controle dos demais componentes, tanto internos quanto externos à mesma, que integram o sistema.

Este projeto é de cunho didático e agrega os conceitos de Sistemas Digitais: Lógica Digital, Circuitos Combinacionais, Circuitos Seqüenciais [HIL-81] e Memórias em Semicondutores: ROM (Read Only Memory) e RAM (Randon Access Memory), juntamente com os conceitos básicos de Microprocessadores: fluxo de dados, memória de programa, opcode, instruções, programa, operandos, microinstrução [CHR-96, LIM-98,

(2)

Este trabalho vem sendo realizado no final do sexto semestre na disciplina de Sistemas Digitais e serve como base para a disciplina de Microprocessadores (ofertado no semestre seguinte), permitindo que os alunos aliem o conhecimento de uma disciplina com o proveniente de outra, dando seqüência ao conteúdo, evitando desta forma sua segmentação.

O projeto vem de encontro à necessidade educacional de permitir que o aluno desenvolva tanto os conceitos teóricos quanto práticos, já abordados na disciplina de Sistemas Digitais, com outros que ainda serão explorados em detalhe na disciplina de Microprocessadores.

Os alunos desenvolvem este projeto após terem visto, na teoria e na prática, todos os componentes envolvidos, bem como projetado alguns deles, permitindo que utilizem este conhecimento em seu trabalho, agregando as informações obtidas anteriormente na disciplina de Sistemas Digitais com as outras que serão abordadas no decorrer do projeto e que são temas de estudo na disciplina de Microprocessadores.

Os conceitos específicos de microprocessadores serão revistos em detalhe na disciplina de Microprocessadores, cujo rendimento pedagógico será superior, em virtude de já terem utilizado na prática as informações deste domínio e que foram sedimentadas com este projeto.

2 O Conteúdo das Disciplinas

Para melhor compreender a finalidade deste projeto, é necessário que se conheça os conteúdos abordados em cada uma das disciplinas que estão diretamente envolvidas no trabalho.

Na disciplina de Sistemas Digitais, ofertada no quinto e no sexto semestre, o conteúdo é dividido em duas partes básicas: circuitos combinacionais e circuitos seqüenciais e, como tópicos avançados, as memórias em semicondutores e os dispositivos programáveis [FER-98]: PLA (Programmable Logic Array) e PLD (Programmable Logic Device).

Na parte relativa aos circuitos combinacionais temos as funções verdades, portas lógicas, álgebra booleana, simplificação algébrica, circuitos lógicos combinacionais, mapas de Karnaugh, método de simplificação Quine-McCluskey e circuitos lógicos básicos como por exemplo: ULA (Unidade Lógica e Aritmética), decodificadores, multiplexadores, barramentos [HIL-81] e outros.

No que se refere a circuitos seqüenciais são vistos os flip-flops, contadores, registradores, máquinas seqüenciais síncronas e assíncronas, síntese de circuitos seqüenciais, projetos de máquinas seqüenciais, síntese de diagrama de estado (máquina de estado) [HIL-81].

E no tópico sobre as memórias em semicondutores, são estudadas as memórias RAMs e ROMs, bem como suas variantes, estrutura interna, diagrama em bloco, princípio de funcionamento, célula básica e, no que se refere aos dispositivos lógicos programáveis, suas funções , aplicações e, bem como, todo o ambiente de desenvolvimento MAX+PLUS II da Altera [FER-99].

Já na disciplina de Microprocessadores, ofertada no sétimo e oitavo períodos, em linhas gerais, são vistos os bancos de memória, estudo da parte de controle e da parte operativa dos processadores, microprogramação [TAN-92], instruções, programa, programação em assembly, e projeto com microprocessadores em particular com o Microcontrolador 8051 da Intel.

(3)

3 O Projeto

Este projeto está baseado nos conteúdos ministrados na disciplina de Sistemas Digitais, mas com alguns temas que pertencem a Microprocessadores, dando condição ao uso da multidisciplinaridade, como meio para integrar estas disciplinas na elaboração do mesmo.

Neste projeto são utilizados os seguintes componentes lógicos, e que foram estudados em Sistemas Digitais:

• Portas Lógicas;

• ULA (Unidade Lógica e Aritmética); • Barramento;

Dispositivos Tri-State; • Registradores;

• Contadores;

• Memórias em semicondutores: ROMs e RAMs.

Estes componentes, quando vistos isoladamente, não fazem muito sentido, mas interligados, geram componentes que têm funções específicas, como é o caso do fluxo de dados de uma CPU, que é composto pela ULA, registradores, dispositivos tri-state e barramentos [CHR-96]. Reg A Reg B Reg R ULA TRI Barramento

Contador Memória de Controle

Microprograma

4

TRI TRI

TRI Sinais de Controle

OPCODE Operandos Memória de Programa Chaves Microprograma Contador Programa Memória de Controle Memória de Programa Fluxo de Dados

Figura 1 - Diagrama em Bloco da CPU

Na disciplina de Microprocessadores os componentes, que em Sistemas Digitais eram básicos e com função geral, como é o caso dos contadores, passam agora a ter uma função específica, no caso dos contadores de programa, que indica qual a próxima instrução a ser executada, e de microprograma, que aponta para a próxima microinstrução que será ativada.

O mesmo acontece com as memórias ROMs que têm a função de armazenar informações (dados), por um período de tempo relativamente grande, sem que o dispositivo esteja energizado e, que neste caso, tem a função de memória de controle,

(4)

quase que imediatamente, devido a característica intrínsica do componente, a alteração dos dados na saída.

3.1 Descrição do Projeto

O projeto tem por base o desenvolvimento, com aspecto didático, de uma CPU de 4 bits, por referência a Figura 1, com um conjunto mínimo de instruções.

Ele contém três blocos funcionais distintos: Fluxo de Dados – que é o coração da CPU, Memória de Controle - responsável pelo controle (ativação) de todos os componentes e, por último, mas não menos importante, a Memória de Programa, que tem como função armazenar o programa que será executado pela CPU.

O bloco Fluxo de Dados, de quatro bits, que é o coração das CPUs, é composto por uma ULA - elemento responsável pelas operações aritméticas e lógicas, três registradores (reg), elementos de armazenamento, que são nomeadas de A, B e R, e quatro dispositivos tri-state para o isolamento do barramento, além de um barramento que serve de conexão para os demais elementos.

O bloco Memória de Controle é composto por um contador presetável, que aponta para as microinstruções que compõem o microprograma, e por, no mínimo, uma memória EPROM (Erase Programmable Read Only Memory), que armazena o microprograma ou mais precisamente as microinstruções.

É deste bloco que saem os sinais que irão controlar todos os demais componentes, ou seja, os sinais de controle para os componentes do sistema, tanto internos à CPU como também externos, provenientes das saídas da memória EPROM.

Na memória de controle, fica armazenado o microprograma, que nada mais é do que as microinstruções. Cada uma destas microinstruções está em uma linha (ou posição) da memória, na forma de microperações, em binário logicamente.

A cada seqüência de microinstruções, corresponde uma instrução da CPU, sendo que para o conjunto destas instruções dá-se o nome de conjunto de instruções.

O conteúdo desta memória é fixo, pois contém o conjunto de instruções da CPU ou, mais precisamente, as várias seqüências de microinstruções que correspondem a cada uma das instruções válidas para esta CPU e não poderá ser alterado durante a execução.

O bloco Memória de Programa é composto por duas memórias do tipo RAM, uma para armazenar o Opcode da instrução e outra para o operando (se a instrução assim o tiver), pois há instruções como é o caso da NOP (No Operation) que não necessita de operando; e por um contador de programa, que indica qual a próxima instrução que será executada pela CPU.

Na memória de programa fica armazenado o programa, seqüência de instruções em uma ordem lógica, que o usuário define utilizando as instruções da CPU, por meio das chaves de entrada e em cada linha (ou posição) da memória de programa fica uma instrução que é dividida em duas partes: uma para o Opcode, que determina a ação a ser tomada e outra para o Operando, valor sobre o qual a ação é efetuada (realizada).

O valor do Opcode serve para inicializar o contador de microinstruções, que apontará para a primeira de um conjunto de microinstruções necessárias para que a ação pretendida efetivamente aconteça e o operando das instruções irá diretamente para o barramento do fluxo de dados que será armazenado em um dos registradores internos, para posteriormente ser processado.

O conteúdo da memória de programa é variável, pois conterá a seqüência de instruções colocadas pelo usuário em uma determinada ordem, ou seja, o programa aplicativo que o usuário tiver desenvolvido para atender a uma exigência computacional.

(5)

Com base nesta descrição e no diagrama em bloco da CPU (Figura 1), é elaborado o projeto, implementação e a documentação de uma CPU microprogramada de 4 bits, que deverá executar no mínimo as seguintes instruções:

• MOV A , <valor> ; Coloca em A um <valor> em binário

MOV B , <valor> ; Coloca em B um <valor> em binário

• ADD A , B ; Adiciona o valor em A com o em B e coloca o resultado em A

• INC A ; Adiciona o valor em A em uma unidade

• OR A , B ; Efetua um OR lógico entre o conteúdo de A e o conteúdo de B A seqüência destas instruções, em uma ordem lógica informada pelo usuário, define o programa que será executado pela CPU, mediante as diretrizes (ações) dadas pelas microinstruções que compõem cada uma das instruções utilizadas no programa.

3.2 Funcionamento

Inicialmente o contador de programa aponta para a posição 0 decimal (0000 em binário) da memória de programa, onde estará a primeira instrução do programa (em código binário). Este código (opcode) será o valor inicial de carga para o contador de microprograma, ou seja, ele irá indicar qual a primeira microinstrução da seqüência, que corresponde àquela instrução solicitada pelo usuário, que será executada.

A cada pulso de clock o contador de microprograma apontará para a próxima microinstrução, na memória de controle, a ser executada. Quando toda a seqüência de microinstruções tiver sido executada, o contador de programa é automaticamente incrementado pela memória de controle em uma unidade, para que ele aponte para a próxima instrução do programa, que está na memória de programa. A partir deste ponto, todo o ciclo se repete até que o programa esteja totalmente executado.

Como pode ser observado na Figura 1, a ligação entre os diferentes blocos, ocorre por meio dos barramentos de conexão.

No caso da ligação entre o bloco da memória de programa e de controle, isto ocorre através do barramento que interliga a memória, onde fica armazenado o opcode, com o contador de microprograma e isto é extremamente necessário, pois o valor do opcode serve para pré-setar o contador indicando qual a primeira microinstrução a ser executada.

Entre o bloco da memória de programa e o fluxo de dados, temos o próprio barramento de dados interno a CPU, que mantém o Fluxo de Dados isolado da memória de programa (operandos) por um dispositivo tri-state. Esta ligação serve para que o operando vá para o fluxo de dados para ser processado.

Da memória de controle partem os sinais de controle que são os responsáveis por controlar cada um dos componentes das unidades funcionais que compõem a CPU.

3.3 Exemplo de CPU

Com base na descrição do projeto, assumindo que, por exemplo, a CPU implemente as seguintes instruções (Figura 2):

Instrução Opcode MOV A, valor 0000 MOV B, valor 0011 MOV B, A 0101 ADD A, B 1000 INC A 1010 OR A, valor 1110

(6)

Então, na memória de controle (microprograma), ou seja nas EPROMs, teremos o seguinte conteúdo, saindo do pressuposto que estamos utilizando 4 bits para especificar a posição em memória (Figura 3):

Posição Microinstrução Comentário

0000 11110001010101....111 Microinstruções

0001 11010101010111....011 da instrução MOV A, valor 0010 10000011010101....000

0011 .... Microinstruções

0100 .... da instrução MOV B, valor

0101 .... Microinstruções 0110 .... da instrução MOV B, A 0111 .... 1000 .... Microinstruções 1001 .... da instrução ADD A, B 1010 .... Microinstruções 1011 .... da instrução INC A 1100 .... 1101 .... 1110 .... Microinstruções 1111 .... da instrução OR A, valor

Figura 3 - Conteúdo da memória de controle (microprograma) da CPU exemplo Considerando que o programa que o usuário desenvolveu, por exemplo, seja o seguinte:

MOV A, 1000 ; Coloca em A o valor 1000 em binário MOV B, 0010 ; Coloca em B o valor 0010 em binário

ADD A, B ; Adiciona o valor em A com o em B e coloca o resultado em A MOV B, A ; Faz uma cópia do valor de A para o registrador B

INC A ; Adiciona o valor em A em uma unidade

OR A, 0110 ; Efetua um OR lógico entre o conteúdo de A com 0110 binário

Então, na memória de programa (RAMs) teremos o seguinte conteúdo (Figura 4) considerando as 16 posições da memória, lembrando que a posição da memória é determinada fisicamente, pelo endereço das suas células de memória, onde o opcode está em uma RAM, o operando em outra, e o campo comentário não existe fisicamente na memória, haja visto que é utilizado somente para explicação a respeito do programa.

Posição Opcode Operandos Comentário

0000 0000 1000 MOV A, 1000 0001 0011 0010 MOV B, 0010 0010 1000 xxxx ADD A, B 0011 0101 xxxx MOV B, A 0100 1010 xxxx INC A 0101 1110 0110 OR A, 0110 0110 0111 1000 Obs: xxxx são 1001 irrelevantes 1010 1011 1100 1101 1110 1111

(7)

4 Resultados

Como resultado, os alunos adquirem uma outra concepção a respeito da área de eletrônica digital, pois desmistificaram a CPU (processador), em virtude de terem visto e compreendido o seu funcionamento em detalhes.

Isto decorre do fato de terem descoberto que as partes que a compõem, nada mais são do que os componentes que estudaram na disciplina de Sistemas Digitais, isoladamente e que, agora, passam a funcionar de forma integrada dentro do processador.

Outros problemas de ordem prática, devido ao tamanho do projeto e de ser a primeira disciplina da área de eletrônica digital que eles tiveram acesso, também foram detectados e solucionados pelos próprios alunos, com orientação do professor, como por exemplos contatos físicos-mecânicos, ligações mal feitas, tempo de atraso dos componentes, interligação dos componentes e outros.

A grande maioria dos alunos, cerca de 92%, apresentou o projeto, tanto em termos práticos, provando a funcionalidade e o teste de autoria; quanto na teoria, com a fundamentação teórica necessária, obtida na literatura, descrição técnica dos componentes utilizados, bem como toda a especificação e descrição técnica do projeto.

Os alunos tiveram que trabalhar com as memória em semicondutores, SRAMs-Static RAMs - (como memória de programa) e UVPROMs-Ultra Violet Programmable ROMs - (como memória de controle), operando no modo de escrita e leitura e, no caso particular desta última, também com a gravação e apagamento, utilizando equipamentos especiais para este fim.

5 Conclusão

Com base nesta idéia, o aluno pode sugerir alterações e melhoramentos que fazem parte da criatividade e iniciativa de cada equipe, criando uma abordagem construtivista.

Neste trabalho, além dos conceitos relativos a Sistema Digitais, o aluno pode assimilar alguns conhecimentos relativos a Microprocessadores, como por exemplo: microprograma, microinstruções, fluxo de dados, programa, instruções, opcode e operando, dentre outros, disponibilizando um ambiente de descoberta e de exploração, contribuindo para uma melhor percepção das possibilidades da área.

Desta maneira, conseguiu-se criar uma ligação entre as disciplinas da área de digital, do curso de Engenharia da Computação, no caso Sistemas Digitais e Microprocessadores, permitindo que o aluno construa uma relação sólida entre os conteúdos ministrados.

Temas muitas vezes estanques das disciplinas, agora fazem parte de um universo que está integrado, possibilitando uma melhor compreensão das mesmas e as suas inter-relações.

Este projeto, além de ser sido elaborado com componentes convencionais, foi também desenvolvido, por um aluno, utilizando-se o ambiente de desenvolvimento MAX+PLUS II [FER-99], da Altera, para a programação dos dispositivos lógicos programáveis (PLDs) usados no mesmo.

O projeto é avaliado na prática, em laboratório, para comprovar o seu funcionamento, e ao término do trabalho os alunos devem entregar um relatório, conforme as normas técnicas, o qual é constituído de vários itens, como por exemplo especificação, projeto, componentes, procedimentos adotados, funcionamento, resultados, conclusões,

(8)

O relatório do projeto pode ser entregue tanto impresso em papel, como também (por recomendação) em mídia de armazenamento, como em disquetes ou CD-ROMs, utilizando recursos de multimídia e de hiperlink, que além de facilitar a navegação pelo relatório, também o torna mais agradável e amigável, podendo estar disponível em uma base de dados, facilitando o acesso aos trabalhos, por exemplo pela internet, e servindo de referência para trabalhos futuros.

Este fato vem de encontro a um outro ponto extremamente importante, que é o de disciminar o conhecimento, a informação adquirida, permitindo que ele possa ser utilizado por outros estudantes e também pela comunidade de uma maneira geral.

6 Referências

[CHR-96] Christiansen, Donald, Editor, "Digital Computer Systems", Electronics Engineer's Handbook, Fourth Edition, New York-USA: IEEE Press, 1996, pp. 27.1-27-94.

[FER-98] Ferlin, Edson Pedro & Eleutério, Marco Antônio Masoler, "Vantagens na

Elaboração de Projetos Digitais Utilizando Dispositivos Lógicos Programáveis", IV Simpósio de Pesquisa e Extensão em Tecnologia,

Natal-RN-Brasil: UFRN, 1998, pp. 97-99.

[FER-99] Ferlin, Edson Pedro & Eleutério, Marco Antonio M., "Creating and Using

Programmable Logic Laboratory in the Computer Engineering Course", 3rd

Conference on Engineering Education – ICEE´99, Ostrava-Praga, Czech Republic.10 a 14 de Agosto de 1999.

[HIL-81] Hill, F.J., Peterson, G.R., “Introduction to Switching Theory and Logical

Design”, Third Edition, New York-USA: John Wiley & Sons, 1981.

[LIM-98] Lima, José A. G de. et al, "A Flexible Microprogrammable Controler for ATM

Swith", ICMP-98 International Conference on Microelectronics and

Packaging, Proceeding I, Curitiba-PR-Brasil: LAC/LACTRO, 1998, pp. 221-228.

[TAN-92] Tanenbaum, Andrew S., "O Nível de Microprogramação", Organização Estruturada de Computadores, Rio de Janeiro-Brasil: Prentice-Hall, 1992, pp. 128-181.

Referências

Documentos relacionados

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

O 6º ano do Mestrado Integrado em Medicina (MIM) é um estágio profissionalizante (EP) que inclui os estágios parcelares de Medicina Interna, Cirurgia Geral,

Realizar a manipulação, o armazenamento e o processamento dessa massa enorme de dados utilizando os bancos de dados relacionais se mostrou ineficiente, pois o

de lôbo-guará (Chrysocyon brachyurus), a partir do cérebro e da glândula submaxilar em face das ino- culações em camundongos, cobaios e coelho e, também, pela presença

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

5 “A Teoria Pura do Direito é uma teoria do Direito positivo – do Direito positivo em geral, não de uma ordem jurídica especial” (KELSEN, Teoria pura do direito, p..

Este estudo apresenta como tema central a análise sobre os processos de inclusão social de jovens e adultos com deficiência, alunos da APAE , assim, percorrendo