A Lógica do Computador em Síntese

Como será que funciona o Computador? Como soma? Como executa os nossos programas? Algumas das questões que nos levaram a uma pesquisa que, conforme foi evoluindo, resolvemos ir pondo por escrito. A necessidade de execução de gráficos como forma de ajuda à clarificação de dúvidas rapidamente surgiu, convertendo o texto no seu complemento ideal. E assim surgiu este trabalho.

A Ciência da Computação é complexa, mas essa complexidade resulta da soma das mais elementares simplicidades. Nesta abordagem começamos pelo conjunto de simplicidades que compõem a sua complexidade. Por isso, em todos os temas abordados, iniciámos sempre pela sua decomposição nas suas partes mais elementares. A Lógica e o uso de raciocínios lógicos (a base de toda esta Ciência) estiveram sempre presentes em todas as exposições, nunca introduzindo quaisquer conceitos sem que primeiro os deduzíssemos de uma forma lógica.

Afinal o Computador não é mais do que uma máquina de interruptores que liga e desliga consoante as operações que pretende executar. Como o faz é o que vamos ver. É a este nível que queremos iniciar todas as abordagens. Daí o título simbólico que demos a este trabalho:

Os caminhos (circuitos) que os estafetas (bits) da UCP percorrem para ligar e desligar interruptores (transístores).

Ao longo deste texto vai encontrar os “hiperlinks” para as sínteses individuais de cada Capítulo.

Começámos pela abstração constituída pela Lógica Matemática e pela Álgebra de Boole, afinal a origem da Ciência da Computação. Ligámos estas abstrações Matemático/Filosóficas de verdadeiro/falso ao 1/0 do vocabulário da linguagem do Computador.

1 – Computação e Lógica

Construímos circuitos elétricos que permitem converter nos estados de com/sem tensão os estados 1/0 das nossas abstrações, isto é, levámos as nossas abstrações ao entendimento pela máquina e fizemos uma primeira abordagem aos tais interruptores, os Transístores.

2 – Abstração Materializada

Com combinações logicamente deduzidas das mais elementares portas Lógicas construímos os circuitos que irão permitir ao Computador executar as diversas operações necessárias ao cumprimento das ordens do seu criador. Introduzimos aqui o importante conceito da Lógica Temporizada, o Clock, que permite ao computador sincronizar todas as suas operações e sempre que possível fizemos as nossas análises com incidência nesta temporização. Pelo caminho e para aliviar um pouco fizemos uma abordagem à Imagem e ao Som digitais, como se convertem em números e como se voltam a mostrar preparados para os nossos sentidos.

3 – Aritmética Binária

4 – Imagem e  Som

5 – Circuitos Lógicos

6 – Aritmética e Lógica

Construímos com esses circuitos uma UCP que vai permitir ao Computador ser diferente de qualquer máquina de calcular e executar a cada momento as instruções do programa que constitui a vontade do seu criador. Criámos um pequeno programa e executámo-lo decomposto em operações da nossa imaginária UCP. É aqui que melhor vamos ver como, em obediência às instruções decompostas de um programa, o Computador liga e desliga os interruptores (transístores) necessários para criar os circuitos que as vão executar.

7 – Processador (UCP)

Mostrámos como se interligam físicamente todos os componentes do Computador na Placa Mãe, o grande Circuito Impresso onde tudo se liga, com evidência para os seus diversos componentes e a sua evolução nos anos mais recentes

8 – Placa Mãe

Abordámos com alguma profundidade, pela importância que têm na operação e performance da UCP, os diversos níveis de Memória : a RAM ou Memória Principal, a Memória Cache e o Disco Rígido ou HDD, como funcionam, como se organizam e como se interligam.

9 – Memória Principal

10 – Memória Cache

11 – Disco Rígido

Voltámos à abstração para abordarmos os Sistemas Operativos, os grandes comandantes do Computador  e os seus Sistemas de Ficheiros, aqueles que permitem organizar toda a enorme quantidade de informação que o Computador guarda em Disco para poder operar e  realizar os nossos desejos a cada momento.

12 – Sistemas de Ficheiros

13 –Sistemas Operativos

Abandonámos o mundo do computador isolado e passámos a encará-lo num mundo global onde todos os computadores se podem interligar e obter de outros, elementos essenciais à sua operação. Fizemo-lo analisando a Internet, a grande rede global, seguindo o percurso dos bits desta vez encapsulados em unidades autónomas de informação a que chamamos Pacotes, desde que accionamos uma hiperligação no nosso computador até que recebemos a informação à mesma correspondente.

14 – Internet

Pretendemos que este trabalho seja dinâmico, em permanente atualização, melhoria do conteúdo existente e introdução de novos conteúdos. Para isso contamos com todos aqueles que por este trabalho se interessarem. Criámos um Fórum onde pretendemos que todos possam ver as suas dúvidas esclarecidas e as suas críticas comentadas, sempre de uma forma construtiva como é evidente. As Vossas dúvidas, perguntas, comentários e críticas serão a fonte para a dinâmica que pretendemos.

Quem sou e o porquê deste Trabalho

Sou Engenheiro Civil, diretor e gestor de projetos. O gosto que sempre nutri pela Ciência Informática e a curiosidade de saber como funciona afinal aquela maravilhosa máquina que é o computador levaram-me a uma pesquisa sobre a forma lógica do seu funcionamento. Sem quaisquer pressões,  como um leigo/estudante (frequentei mesmo o Mestrado em Ciência Informática) sem objetivos de carreira na área,  fui conseguindo passo a passo o objetivo que me propus e entender, numa evolução natural, como funciona essa maravilhosa máquina.

Por isso estabeleci um caminho, começando pelas mais elementares dúvidas que tinha e fui pesquisando de forma a conseguir ultrapassá-las passo a passo. E só com raciocínios e deduções lógicas consegui ir da simplicidade à complexidade.

Porque entendo que tal como eu, muitos mais deverão ter a mesma curiosidade, resolvi ir pondo por escrito a forma como fui apreendendo aquilo que queria para o objetivo que me propus, de forma que qualquer curioso com um QB de formação e interesse por esta Ciência possa entender como funciona, isto é, qual a lógica por detrás de cada procedimento. Basta seguir o caminho que eu próprio segui.

Este trabalho é uma exposição dos conhecimentos adquiridos por mim e da forma como os fui conseguindo adquirir no contexto de uma pesquisa com um determinado fim.

Bibliografia

Wikipedia – Em todos os temas foi sempre um forte elemento de apoio. É difícil descrever onde. É mais fácil dizer em tudo. Foi aquela que mais consultei e onde encontrei, com muita procura, resposta para quase tido.

Introdução à informática Luís Gouveia – http://www2.ufp.pt/~lmbg/textos/intro_inf.pdf

Arquitetura de ComputadoresJosé Delgado, Carlos Ribeiro – FCA

Curso de Organização de ComputadoresRui Mano – http://wwwusers.rdc.puc-rio.br/rmano/rmano.html

O ComputadorB. Piropo – Colunas de ForumPCs

Arquitectura de ComputadoresAlberto José Proença – http://gec.di.uminho.pt/discip/TextoAC/indice.html

Sistemas DigitaisGuilherme Arroz, Carlos Sêrro – http://sd.tagus.ist.utl.pt/files/Folhas_v11.pdf

Sistemas OperativosJosé Alves Marques, Paulo Ferreira, Carlos Ribeiro, Luís Veiga, Rodrigo Rodrigues – FCA

Tecnologia dos Equipamentos Informáticos Rui Vasco Monteiro, Filipe Neves, João Pereira, Nuno Rodrigues, Ricardo Martinho – FCA

Fundamentos da Programação Utilizando Múltiplos Paradigmas –  João Pavão Martins e Maria dos Remédios Cravo – IST Press

Mathematical Logic for Computer ScienceMordechai Ben-Ari – Springer

Manual de EletrotecniaPaulo Peixoto – ANFEI

Famílias e Tecnologias DigitaisBertoldo Schneider Jr, Fábio Kurt Schneider – www.pessoal.utfpr.edu.br/bertoldo/Downloads/FamiliasDig.PDF

Introdução à Microeletrónica Fernando Rangel – UFRN, Brasil

Apontamentos sobre famílias lógicas – ISCTE

Família NMOSProf. Fabiano Fruett – dsif.fee.unicamp.br

Transístores como chaves – www.centelhas.com.br/biblioteca/transistores_como_chaves.pdf

Introduction to Semiconductor Technology – Friedrich Alexander Universitat

Memórias RAMMarcelino Santos – https://dspace.ist.utl.pt/bitstream/2295/44002/1/aula14-15.pdf

A Cache PrimerPaul Genua – Freescale Semiconductor, Austin TX

Controlador de Memória DinâmicaN. Borges Carvalho, R. Vieira Silva, A. Nunes Cruz – Revista do DETUA,Vol 2, nº5, Janeiro 1996

Synchronous DRAM User’s Manual – ELPIDA Documento nº E0124N10

How to use SDRAM – ELPIDA Documento nº E0123N81

Synchronous DRAM MT48LC32M8A2 256 Mb 8Meg x 8Bit x 4 Bank Datasheet – MICRON

Synchronous DRAM Module  MT8LSDT3264A (I) 256 MB Datasheet – MICRON

SDRAM – 48SD3208 256 Mb SDRAM 8 Meg x 8 bit x 4 Banks  Datasheet – MAXWELL

Synchronous DRAM – 256Mb J-die SDRAM Specification – SAMSUNG

SDRAM Unbuffered Module based on 256 Mb J-die Datasheet – SAMSUNG

Computer Networking, a Top-Down Approach Featuring the InternetJames F. Kurose, Keith W. Ross – Addison-Wesley

Engenharia de Redes InformáticasEdmundo Monteiro, Fernando Boavida – FCA

Redes de ComputadoresJosé Gouveia, Alberto Magalhães – FCA

Administração de Redes InformáticasFernando Boavida, Mário Bernardes, Pedro Vapi – FCA

How NTFS Works Local File Systems – http://technet.microsoft.com/en-us/library/cc781134(WS.10).aspx

NTFS.com File System Structure, Recovery Software, Hard Disk Internals – http://www.ntfs.com/

Linux NTFS Driver – http://linux-ntfs.sourceforge.net/ntfs/index.html

Hard Disk Drive Reference Guide – Storage Review

Como tudo  funciona – http://www.hsw.uol.com.br/

Guia do Hardware – http://www.guiadohardware.net/dicas/

Clube do Hardware – http://www.clubedohardware.com.br/

Intel Core i7 Memory Hierarchy – Chris Line & Mike Mercado

The Architecture of the Nehalem Processor and Nehalem-EP SMP Platforms – Michael E. Thomadakis, Ph.D. – Texas A&M University