Introdução à Arquitectura SAP com foco em SAP-1

De acordo com Malvino [1] (p. 255) o computador SAP (Simples-Quanto-Possível = Simple-As-Possible) foi projetado com o objetivo de apresentar de forma lúdica a estrutura operacional de um computador eletrônico moderno, de maneira que fique mais simples abstrair a concepção usada nos computadores eletrônicos mais modernos. Por mais estranho que possa parecer, muitos professores que atuam sobre a temática da disciplina relacionada a arquitetura e organização de computadores não fazem uso deste recurso ocasionando verdadeiro martírio para os alunos.

O uso do computador SAP pode facilitar o entendimento dos detalhes relacionados a organização de computadores e sua aplicação em linguagem de baixo nível.

Este artigo descreve brevemente a arquitetura SAP-1 e mostra duas aplicações exemplificando e utilizando-se sua linguagem de baixo nível.

A Arquitectura

A proposta da arquitetura do computador SAP é mostrada em três diferentes gerações, sendo a geração SAP-1 o primeiro estágio com vistas aos computadores eletrônicos modernos, foco da apresentação desta introdução. Assim sendo, não são apresentados elementos das gerações SAP-2 e SAP-3.

Objetiva-se com este artigo instigar professores da disciplina a fazerem da ferramenta SAP. Encontram-se no sítio Youtube diversas aulas disponibilizadas sobre o tema que podem ser utilizadas como elementos inspiradores e de embasamento para a apresentação de uma arquitetura real.

A Figura 1 apresenta a estrutura da arquitetura proposta para o SAP-1.

SAP: Arquitetura SAP-1, segundo Malvino

Figura 1: Arquitetura SAP-1, segundo Malvino [1] (p. 257)

A arquitetura do modelo SAP-1 caracteriza-se por ser um computador organizado em barramentos, tendo como estrutura central de comunicação o barramento W de 8 bits, responsável pelo nível de compartilhamento de todos os dispositivos a ele conectado.

O dispositivo Contador de Programa faz parte da unidade de controle, possui como finalidade operacional a capacidade de efetuar a contagem de 0000 até 1111. Este dispositivo tem por finalidade enviar à memória o endereço da próxima instrução de programa a ser executada. A cada novo processamento executado o contador de programa é inicializado com valor 0000. Segundo [1] (p. 256):

Quando começa o processamento ou execução no computador, o contador de programa envia o endereço 0000 à memória. O contador de programa é então incrementado para se obter 0001. Depois da primeira instrução ser buscada e executada, o contador de programa envia o endereço 0001 à memória. Novamente o contador de programa é incrementado. Depois de a segunda instrução ser buscada e executada, o contador de programa envia o endereço 0010 à memória. Desta maneira, o contador de programa está acompanhando o desenvolvimento da próxima instrução a ser buscada e executada.

O dispositivo Entrada e REM inclui o registrador de dados e o registrador de endereços. Este dispositivo é responsável pela efetivação das ações de entrada de dados e execução das instruções de um programa. Este dispositivo também é usado para armazenar o valor passado pelo contador de programa. Os registradores deste dispositivo enviam 4 bits de endereço e 8 bits de dados à RAM pelo REM (Registrador de Endereço de Memória).

O dispositivo RAM tem por finalidade armazenar os dados e as instruções enviadas pelo programa que serão usados no computador. Este dispositivo se caracteriza por ser uma memória estática com a capacidade de armazenar 16 linhas de 8 bits cada uma. Segundo [1] (p. 256):

Durante um processamento do computador, a RAM recebe endereços de 4 bits do REM e é executada uma operação de leitura. Desta maneira, a instrução ou palavra de dados armazenada na RAM é colocada no barramento W para uso em alguma outra parte do computador.

O dispositivo Registrador de Instruções é parte da unidade de controle, tendo por finalidade receber um byte referente a uma instrução lida a partir da memória RAM. O byte recebido é dividido em dois nibbles, o nibble superior referente à própria instrução e passado ao Controlador/Sequencializador (descrito a seguir) e o nibble inferior referente a uma saída lida no barramento W quando necessário. Segundo [1] (p. 256) o registrador de instruções efetua uma operação de leitura da memória.

O dispositivo Controlador/Sequencializador é parte da unidade de controle, tendo por finalidade controlar todo o computador. Este dispositivo recebe o nibble referente à instrução a ser executada, a qual, se encontra no Registrador de Instrução, decodifica e envia uma palavra de 12 bits para o computador [2] (p. 155). Segundo Campos  [2] (p. 155) a “palavra de controle é responsável por habilitar ou desabilitar cada funcionalidade de cada módulo presente no computador a fim de que ele execute uma determinada tarefa”.

O dispositivo Acumulador A caracteriza-se por ser um registrador de memória temporária que tem por finalidade armazenar operandos e resultados de processamento realizados pelo computador ([1], p. 258 & [3], p. 155). Este registrador recebe um dado transferido pelo barramento W, podendo disponibilizar este dado tanto para o dispositivo Somador/Subtrador como de volta para o barramento W.

O dispositivo Somador/Subtrador é o componente responsável pela efetivação do processamento das operações de soma e de subtração, sendo esta parte da Unidade Lógica e Aritmética do computador SAP-1. A subtração é efetuada a partir do uso do método do complemento de 2, onde para efetivar a subtração efetua uma soma do valor do acumulador com o complemento do segundo operando ([2], p. 155). Para este dispositivo realizar sua tarefa ele pega o operando (valor) do Registrador B e realiza a operação indicada (soma ou subtração) junto ao operando do Acumulador A e grava o resultado da operação executada no Acumulador A.

O dispositivo Registrador B caracteriza-se por ser um registrador de memória temporária auxiliar que coleta do barramento W determinado valor e o transfere para o dispositivo Somador/Subtrador que é parte da Unidade Lógica e Aritmética do computador SAP-1.

O dispositivo Registrador de Saída também denominado porta de saída ([1], p. 259) ou registrador de saída ([2], p. 155) é o componente responsável por coletar o resultado da operação de processamento que esteja armazenado no Acumulador A e transferi-lo para o mundo exterior e apresentá-lo junto ao dispositivo Indicador Visual Binário. Malvino [1] (p 259) acrescenta que:

Em microcomputadores as portas de saída são conectadas aos circuitos de interface que comandam dispositivos periféricos como as impressoras, os tubos de raios catódicos, as teleimpressoras etc.

O dispositivo Indicador Visual Binário é no computador SAP-1 um painel luminoso com oito LEDs (Diodo Emissor de Luz = Light-Emitting Diode) que representam na forma binária o valor que fora transferido do Acumulador A para o Registrador de Saída.

Publicado na edição 49 (PDF) da Revista PROGRAMAR.