1.9k likes | 2.11k Views
Fundamentos de Sistemas Computacionais. Professor: Ricardo Quintão e-mail: rgquintao@gmail.com Site: www.rgquintao.com.br Versão 4.0. Sistema de Numeração. Vazio. Vazio. 0 1 2 3 4 5 6 7 8 9 . 0 1 2 3 . Base 4. Base 10. Vazio. 0
E N D
Fundamentos de Sistemas Computacionais Professor: Ricardo Quintão e-mail: rgquintao@gmail.com Site: www.rgquintao.com.br Versão 4.0
Sistema de Numeração Vazio Vazio 0 1 2 3 4 5 6 7 8 9 0 1 2 3 Base 4 Base 10 Vazio 0 1 Base 2 A base de representação numérica de um número está relacionada com a quantidade de símbolos disponíveis para representar este número. Se tivermos 10 símbolos para as representações numéricas, este número estará sendo representado na base 10, se tivermos 8 símbolos, ele estará na base 8 e assim sucessivamente.
Sistema de Numeração A maneira utilizada para representar qualquer valor com um número limitado de símbolos foi o da agrupagem. Se montarmos grupos contendo como quantidade de elementos a mesma quantidade de símbolos que temos para a representação numérica, isto é, a base do número, a quantidade de objetos que ficar sobrando será inferior a base, sendo então possível a sua representação.
Sistema de Numeração ( ) 4 3 10 Vamos entender graficamente como é feita esta representação. Vamos fazer um exemplo na base 10, que é a nossa base diária.
Sistema de Numeração ( ) 1 1 2 1 3 ’ 4 3 3 1 3 14 3 4 2 3 1 1 1 3 2 1 0 ( ) = x x x x x x 3 3 3 1 1 1 2 1 1 3 1 3 2 3 + + + 3 3 2 1 0 = x x x x 1 1 3 1 3 2 3 3 + + + = 1 27 9 6 + + + = ( 43 ) Agora vamos fazer um exemplo na base 3 com as mesmas 43 bolinhas. 10
Sistema de Numeração Vazio 0 1 2 3 4 5 6 7 8 9 A B C D E F Base 16 Como será a representação no caso de bases superiores a base 10? Neste caso, precisaremos de mais símbolos para representar estes novos valores. Para facilitar, utilizou-se o alfabeto.
Sistema de Numeração (7126)10 ( )16 7126 16 72 445 16 27 125 16 86 (1BD6)16 11 6 13 1 (1BD6)16 ( )10 3 2 1 0 ( ) 1 B D 6 16 3 2 1 0 = x x x x 16 6 1 16 11 16 13 16 + + + = 6 4096 2816 208 + + + = ( 7126 ) 10 Exemplo de conversão de bases superiores a base 10.
Sistema de NumeraçãoConversão de bases que são potências entre si. • O que significa dizer que duas bases são potências entre si? • Primeiramente devemos representar a base maior numa potência da base menor. (B be) onde B > b & e número inteiro maior que 1. • Se for possível escrever as potências acima, então as bases são potências entre si. • O próximo passo é montar uma tabela de conversão entre estas bases. • Esta tabela terá uma quantidade de linhas de conversão igual ao valor da maior base (B). Normalmente coloca-se uma linha adicional para o cabeçalho das colunas. • A quantidade de dígitos referente aos valores da menor base deve ser igual ao expoente usado nesta base (e). • Monta-se uma tabela de duas colunas onde cada coluna representará uma base. • Na coluna da base maior (B) coloca-se, em seqüência e começando do zero, todos os seus símbolos. • Na coluna da base menor, coloca-se o valor equivalente escrito com uma quantidade de dígitos igual ao expoente da base menor (e). • Pronto! Já temos a tabela pronta, agora é só usar.
Sistema de NumeraçãoConversão de bases que são potências entre si. Exemplo: (323121302)4 ( )2 = (111011011001110010)2 (3 2 3 1 2 1 3 0 2)4 11 10 11 01 10 01 11 00 10 (0111101011110101010110)2 = (13223311112)4 (111101011110101010110)2 ( )4 1 3 2 2 3 1 1 1 2 3 1 • Exemplo: Montar a tabela que converta da base 2 para a base 4. Resolução: Base 4 base 2 (4 = 22 são potências entre si) Total de linhas da tabela: 4 Total de dígitos da base 2: 2
Sistema de NumeraçãoConversão de bases que são potências entre si. Exemplo: (637254)8 ( )2 = (110011111010101100)2 (6 3 7 2 5 4)8 110 011 111 010 101 100 (111101011110101010110)2 ( )8 (111101011110101010110)2 = (7536526)8 7 5 3 6 5 2 6 • Exemplo: Montar a tabela que converta da base 2 para a base 8. Resolução: Base 8 base 2 (8 = 23 são potências entre si) Total de linhas da tabela: 8 Total de dígitos da base 2: 3
Sistema de NumeraçãoConversão de bases que são potências entre si. Exemplo: (AD3B9)16 ( )2 = (10101101001110111001)2 (A D 3 B 9)16 1010 1101 0011 1011 1001 (111101011110101010110)2 ( )16 (000111101011110101010110)2 = (1EBD56)16 1 E 5 6 B D • Exemplo: Montar a tabela que converta da base 2 para a base 16. Resolução: Base 16 base 2 (16 = 24 são potências entre si) Total de linhas da tabela: 16 Total de dígitos da base 2: 4
Sistema de NumeraçãoRepresentação de Números Negativos. 0 Positivo 1 Negativo • Os computadores digitais utilizam principalmente três métodos para representar números negativos: • Sinal e Magnitude • Complemento de um • Complemento de dois Para os três casos é importante definir a quantidade de bits usada na representação do número, porque o bit mais significativo (bit da esquerda) representará o sinal.
Sistema de NumeraçãoRepresentação de Números Negativos. Sinal Magnitude ... Faixa de Valores Para um número formado por n bits (incluindo o bit de sinal), é possível representar valores que vão deste -2n-1 + 1 até 2n-1 - 1. Exemplo: Para um número representado por 8 bits, isto é n = 8, teremos como faixa de valores: -28-1 + 1 até 28-1 - 1 -128 + 1 até 128 - 1 Faixa -127 até 127 Número Sinal e Magnitude Esta representação agrupa o bit de sinal com um valor (magnitude) que representa o valor absoluto de número como ilustrado abaixo:
Sistema de NumeraçãoRepresentação de Números Negativos. Bit de Sinal Sinal e Magnitude Converta os valores abaixo para a sua representação em binário e em seguida apresente-os em hexadecimal (base 16). O valor de n representa a quantidade de bits utilizada na representação binária. (-45)10, n = 8 bits. Primeiro passo: Converter o valor sem sinal, 45, para binário. (45)10 = (101101)2. Segundo passo: Completar (à esquerda) com o valor zero os bits que faltam para chegar a n com exceção do bit mais à esquerda que deve representar o sinal. Neste caso o bit de sinal vale 1 pois o valor é negativo. (-45)10 = (10101101)2 = (AD)16.
Sistema de NumeraçãoRepresentação de Números Negativos. Bit de Sinal Sinal e Magnitude Converta os valores abaixo para a sua representação em binário e em seguida apresente-os em hexadecimal (base 16). O valor de n representa a quantidade de bits utilizada na representação binária. (-7)10, n = 8 bits. Primeiro passo: Converter o valor sem sinal, 7, para binário. (7)10 = (111)2. Segundo passo: Completar (à esquerda) com o valor zero os bits que faltam para chegar a n com exceção do bit mais à esquerda que deve representar o sinal. Neste caso o bit de sinal vale 1 pois o valor é negativo. (-7)10 = (10000111)2 = (87)16.
Sistema de NumeraçãoRepresentação de Números Negativos. Sinal e Magnitude Um ponto negativo em relação a esta representação é a existência de duas formas de representar o valor zero. Veja abaixo: Para um número com 8 bits, temos: (0)10 = (00000000)2. (-0)10 = (10000000)2. Como (0)10 = (-0)10 Então, (00000000)2 = (10000000)2. Isto é, duas representações do zero.
Sistema de NumeraçãoRepresentação de Números Negativos. Sinal Demais bits ... Faixa de Valores Para um número formado por n bits (incluindo o bit de sinal), é possível representar valores que vão deste -2n-1 + 1 até 2n-1 - 1. Exemplo: Para um número representado por 8 bits, isto é n = 8, teremos como faixa de valores: -28-1 + 1 até 28-1 - 1 -128 + 1 até 128 - 1 Faixa -127 até 127 Número Complemento de 1 Nesta representação, o valor negativo de um número é dado pela inversão de todos os seus bits. O bit mais à esquerda continua representando o sinal, porém os demais bits não representam a magnitude.
Sistema de NumeraçãoRepresentação de Números Negativos. Bit de Sinal Complemento de 1 Converta os valores abaixo para a sua representação em binário e em seguida apresente-os em hexadecimal (base 16). O valor de n representa a quantidade de bits utilizada na representação binária. (-45)10, n = 8 bits. Primeiro passo: Converter o valor sem sinal, 45, para binário e representá-lo com 8 bits. (45)10 = (00101101)2. Segundo passo: Inverter todos os bits do número. Repare que o bit mais à esquerda continua representando o sinal. (-45)10 = (11010010)2 = (D2)16.
Sistema de NumeraçãoRepresentação de Números Negativos. Bit de Sinal Complemento de 1 Converta os valores abaixo para a sua representação em binário e em seguida apresente-os em hexadecimal (base 16). O valor de n representa a quantidade de bits utilizada na representação binária. (-7)10, n = 8 bits. Primeiro passo: Converter o valor sem sinal, 7, para binário e representá-lo com 8 bits. (7)10 = (00000111)2. Segundo passo: Inverter todos os bits do número. Repare que o bit mais à esquerda continua representando o sinal. (-7)10 = (11111000)2 = (F8)16.
Sistema de NumeraçãoRepresentação de Números Negativos. Complemento de 1 Um ponto negativo em relação a esta representação é a existência de duas formas de representar o valor zero. Veja abaixo: Para um número com 8 bits, temos: (0)10 = (00000000)2. (-0)10 = (11111111)2. Como (0)10 = (-0)10 Então, (00000000)2 = (11111111)2. Isto é, duas representações do zero.
Sistema de NumeraçãoRepresentação de Números Negativos. Sinal Demais bits ... Faixa de Valores Para um número formado por n bits (incluindo o bit de sinal), é possível representar valores que vão deste -2n-1 até 2n-1 - 1. Exemplo: Para um número representado por 8 bits, isto é n = 8, teremos como faixa de valores: -28-1 até 28-1 - 1 -128 até 128 - 1 Faixa -128 até 127 Número Complemento de 2 Nesta representação, o valor negativo de um número é dado pela inversão de todos os seus bits mais 1. O bit mais à esquerda continua representando o sinal, porém os demais bits não representam a magnitude.
Sistema de NumeraçãoRepresentação de Números Negativos. Bit de Sinal Complemento de 2 Converta os valores abaixo para a sua representação em binário e em seguida apresente-os em hexadecimal (base 16). O valor de n representa a quantidade de bits utilizada na representação binária. (-45)10, n = 8 bits. Primeiro passo: Converter o valor sem sinal, 45, para binário e representá-lo com 8 bits. (45)10 = (00101101)2. Segundo passo: Inverter todos os bits do número (11010010)2. Terceiro passo: Somar 1 ao valor anterior. Repare que o bit mais à esquerda continua representando o sinal. (-45)10 = (11010011)2 = (D3)16.
Sistema de NumeraçãoRepresentação de Números Negativos. Bit de Sinal Complemento de 2 Converta os valores abaixo para a sua representação em binário e em seguida apresente-os em hexadecimal (base 16). O valor de n representa a quantidade de bits utilizada na representação binária. (-7)10, n = 8 bits. Primeiro passo: Converter o valor sem sinal, 7, para binário e representá-lo com 8 bits. (7)10 = (00000111)2. Segundo passo: Inverter todos os bits do número. (11111000)2. Terceiro passo: Somar 1 ao valor anterior. Repare que o bit mais à esquerda continua representando o sinal. (-7)10 = (11111001)2 = (F9)16.
Sistema de NumeraçãoRepresentação de Números Negativos. Complemento de 2 Diferente dos casos anteriores, esta representação possui apenas uma forma de representar o valor zero. Veja abaixo: Para um número com 8 bits, temos: (0)10 = (00000000)2. (-0)10 = (11111111)2 + 1 = (100000000)2. Como o número possui apenas 8 bits, o nono bit representado em azul deve ser descartado. (-0)10 = (00000000)2. Já que (0)10 = (-0)10 Então, (00000000)2 = (00000000)2. Isto é, apenas uma representações do zero.
Sistema de NumeraçãoAritmética com Complemento de 2. Como que a CPU faz para saber se o número utilizado é com ou sem sinal? Afinal de contas, isto é importante na hora de usar o número? Vamos supor os valores em binário abaixo representados por 8 bits. (10000100)2 e (00001110)2 Como seria feita a soma destes números? Usando o método tradicional fica: 11 Considerando sem sinal Considerando com sinal 1000010010000100 (+132)1010000100 (-124)10 + 00001110+ 00001110 (+14)10+ 00001110 (+14)10 1001001010010010 (+146)1010010010 (-110)10 Olha só que interessante! A mesma conta serve tanto para números sem sinal, como para números com sinal. O que vai mudar é a interpretação do resultado feito pelo seu programa.
Memória • Tipos de Memória • Volátil São aquelas que necessitam de energia elétrica para manter os seus dados armazenados. • Não Volátil São aquelas que não necessitam de energia elétrica para manter os seus dados armazenados.
Memórias Voláteis Estática (SRAM – “Static Random Access Memory”) – A característica mais relevante deste tipo de memória é no fato dela ter um tempo de resposta muito pequeno, sendo assim usada para caches e registradores, e também por ocupar um espaço muito grande nas pastilhas de silício proporcionando um alto custo por bit. Dinâmica (DRAM – “Dynamic Random Access Memory”) – Esta memória ocupa um espaço muito pequeno da pastilha, levando a possibilidade de se produzir memórias com uma grande capacidade de armazenamento sendo utilizada para a memória principal, entretanto, ela possui um tempo de resposta muito alto, comparado com as SRAM.
Memórias Não Voláteis ROM (Read Only Memory) – Esta memória vem de fábrica com o seu conteúdo gravado, só sendo permitido ao usuário a operação de leitura (consulta dos dados). Devido ao alto custo da matriz de fabricação desta memória, a sua confecção só se torna financeiramente viável se for produzida em alta quantidade. PROM (Programmable Read Only Memory) – Esta memória vem de fábrica com todos os seu bits valendo “1”, sendo permitido ao usuário a gravação dos “0”. Uma vez que o valor “0” é gravado em um determinado bit, não é possível restaurar este bit para o valor “1”, sendo assim, dizemos que esta memória permite apenas uma gravação por bit.
Memórias Não Voláteis EPROM (Erasable Programmable Read Only Memory) – Esta memória vem de fábrica com todos os seu bits valendo “1”, sendo permitido ao usuário a gravação dos “0” através da energia elétrica. Nesta memória é possível restaurar o valor “1” do bit, mas para isso deve-se expor a memória a luz ultra-violeta. Como a luz ultra-violeta será incidida em toda a memória, todos os bits de valor “0” serão retornados ao valor “1” original de fábrica. EEPROM ou E2PROM (Electrically Erasable Programmable Read Only Memory) – Esta memória vem de fábrica com todos os seu bits valendo “1”, sendo permitido ao usuário a gravação dos “0” através da energia elétrica. Nesta memória é possível restaurar o valor “1” do bit também com o uso da energia elétrica, neste caso, não existe a necessidade de apagar toda a memória antes de ser regravada.
Memórias Não Voláteis • BIOS (Basic Input Output System – Sistema Básico de Entrada e Saída) – Este é um programa que é executado assim que o computador é ligado. Ele tem por objetivo configurar o hardware existente e fazer as devidas verificações. Após toda a sua execução, ele solicita o carregamento do Sistema Operacional de alguma mídia. Devida a necessidade deste programa estar presente no momento em que a máquina é ligada, ele é armazenado em uma memória do tipo não volátil. Durante muitos anos foi utilizada a EPROM como meio de armazenamento da BIOS, mas hoje em dia usa-se a memória do tipo FLASH. FLASH – É um tipo de E2PROM, onde a sua tecnologia permite uma maior densidade de bits uma maior taxa de transferência dos dados e menor tempo de gravação.
Estrutura Interna da Memória Principal M.P. Bit 0 Célula 1 Célula Unidade Mínima de Trabalho da M.P. N Total de Células da M.P. M Capacidade da Célula. CAP_MP Capacidade da M.P. CAP_MP = N x M E Total de bits do Endereço. 2E Total de Endereços. N – 1 Endereço da Última Célula. Se o Total de Células = Total de Endereços então { N = 2E Maior Endereço = N – 1 } Identificação ou Endereço 2 3 N - 1
Conexão da CPU com a MP Unidades Funcionais CPU MP. 0 1 2 3 REM RDM UC N - 1 Barramento de Controle (BC) Barramento de Dados (BD) Barramento de Endereço (BE) REM Registrador de Endereço de Memória. RDM Registrador de Dados de Memória. UC Unidade de Controle. REM >= BE >= E RDM = BD >= M
Memórias Dinâmicas • WE Write Enable (Ativado em “0”). • RAS Row Address Strobe (Ativado em “0”, 11 bits mais significativos). • CAS Column Address Strobe (Ativado em “0”, 11 bits menos significativos). • A0 ... A21 Bits de Endereço (22 bits neste exemplo). • D Entrada do bit de dados. • Q Saída do bit de dados. Obs: em algumas memórias, os pinos D e Q são curtocicuitados gerando um único pino bidirecional.
Memórias Dinâmicas Diagrama em blocos simplificado de uma memória DRAM de 4 Mbits.
Memórias Dinâmicas As memórias dinâmicas são formadas por minúsculos capacitores que, quando carregados, armazenam o valor “1” e, quando descarregados, armazenam o valor “0”. Estes capacitores formam matrizes que são endereçadas pelos bits de linha e coluna que juntos formam o endereço da célula. Devida a corrente de fuga existente em todo circuito eletrônico, estes capacitores precisam ser periodicamente recarregados para que o dado por ele armazenado não seja perdido. A este procedimento dá-se o nome de “Refresh”. O Refresh é feito por linha, isto é, uma linha é selecionada e todas as suas colunas são recarregadas simultaneamente É comum estruturar uma matriz retangular onde existem mais colunas do que linhas, para que o tempo gasto no Refresh seja reduzido. Quando é feita a leitura de um bit, o capacitor responsável por seu armazenamento perde parte da carga armazenada, sendo necessário um recarregamento logo após a leitura ser feita. Este procedimento é feito pelo circuito de Pré-Carga, que, infelizmente, contribui com a queda no desempenho, pois este tempo é incluído no tempo das operações de leitura.
Memórias Dinâmicas(sinalização de RAS) Nesta figura vemos como funciona a sinalização dos bits de linha. Inicialmente o sinal de RAS deve estar desabilitado (“1”) para que sejam colocados os bits referentes a linha (ROW). Como para a memória só existem 11 bits, estes são colocados nos pinos (A0 – A10). Após a estabilidade dos bits de linha, o sinal de RAS é habilitado (“0”). Neste momento, o decodificador de linha é acionado e memoriza o endereço da linha.
Memórias Dinâmicas(sinalização de CAS) Nesta figura vemos como funciona a sinalização dos bits de coluna. Após a sinalização do sinal de RAS, este deve permanecer habilitado (“0”) durante todo o procedimento. O sinal de CAS deve estar inicialmente desabilitado (“1”). Após a captura dos bits de linha, são disponibilizados os bits de coluna (Column). Como para a memória só existem 11 bits, estes são colocados nos pinos (A0 – A10). Após a estabilidade dos bits de coluna, o sinal de CAS é habilitado (“0”). Neste momento, o decodificador de coluna é acionado e memoriza o endereço da linha.
Memórias Dinâmicas(leitura de um dado) Nesta figura vemos como funciona a leitura de um dado. Após a sinalização do sinal de CAS, automaticamente é habilitado o buffer de saída (Q). Apesar do buffer de saída estar habilitado, o dado só estará presente na saída após um certo tempo, no exemplo acima, 60ns após a sinalização de RAS. Só apos este tempo, o dado estará disponível no barramento.
Memórias Dinâmicas(leitura de um dado) Nesta figura vemos o procedimento de leitura completo de um dado. Na finalização do procedimento de leitura, o sinal de CAS e RAS devem ser desabilitados em seqüência. Após desabilitar o sinal de RAS, é necessário permanecer um período de tempo neste estado até começar um novo procedimento de leitura, ou escrita. É neste período de tempo que é realizada a pré-carga do dado lido.
Memórias Dinâmicas(escrita de um dado) Nesta figura vemos o procedimento de escrita completo de um dado. O detalha a adicionar é que neste procedimento, o pino WE deve ser habilitado (“0”) para que seja feita uma escrita.
Memórias Dinâmicas(escrita de um dado) O pino WE é habilitado após a sinalização de RAS e antes da sinalização de CAS. Desta forma, a memória sabe antecipadamente que será realizada uma operação de escrita, mantendo o pino de saída desabilitado. Isto possibilita que os dois pinos (Q e D) sejam curtocircuitados. Este método é conhecido como “early-write” (escrita antecipada), já que a escrita é sinalizada antes da finalização do endereço. Também existe o método “delayed-write” (escrita atrasada), onde a sinalização de escrita é feita após o sinal de CAS. Neste caso, não é possível curtocircuitar os pinos (D e Q), pois o pino Q será habilitado juntamente com o pino D, gerando problemas elétricos. A figura a seguir mostra esta situação.
Memórias Dinâmicas(escrita de um dado) Nesta figura vemos o procedimento de escrita atrasada.
Memórias Dinâmicas(FPM RAM – Fast Page Mode RAM) Como a maioria dos acessos aos dados é feita em seqüência é bem provável que o próximo acesso ocorra na mesma linha, com exceção das bordas. Neste tipo de memória, otimiza-se o acesso, indicando a linha apenas uma vez e depois indicam-se as colunas a serem acessadas. O controle do buffer de saída continua sendo acionado pela linha CAS.
Memórias Dinâmicas(EDO RAM – Extended Data Output RAM) Funciona de forma semelhante a FPM RAM, mas nesta memória foi acrescentado um “latch” para ser usado na saída do dado. Desta forma, o sinal de CAS não precisa ser utilizado para habilitar a saída, deixando esta tarefa para o controlador da DRAM. A vantagem é que com a liberação do CAS, pode-se enviar uma nova coluna em um período de tempo menor.
Memórias Dinâmicas(BEDO RAM – Burst Extended Data Output RAM) Funciona de forma semelhante a EDO RAM, mas nesta memória foi acrescentado um contador para os n bits menos significativos da coluna. Desta forma, para acessos seqüenciais, não era preciso enviar os bits de todas as colunas acessadas. Este contador se auto incrementava a cada acesso, permitindo um acesso em rajada de até 2n colunas.
Memórias Dinâmicas(BEDO RAM – Burst Extended Data Output RAM) Após o envio do endereço da primeira coluna, o sinal de CAS é utilizado para acionar a leitura da próxima coluna. Como não havia necessidade de enviar o endereço da coluna, o tempo de CAS era bem menor, aumentando a taxa de transferência durante a rajada. No exemplo abaixo, foi utilizado um contador de 2 bits, permitindo uma rajada de apenas 4 colunas. Após a quarta coluna, deve-se enviar na integra uma nova coluna e então recomeçar a rajada.
Memórias Dinâmicas(SDRAM – Synchronous Dynamic RAM) Esta memória passou a ser sincronizada por um clock (Relógio) externo. Este clock externo é conhecido como clock de barramento. A vantagem é que a maioria dos sinais de controle são enviados no primeiro acesso e todos os demais acessos da mesma linha são gerados internamente, aumentando o desempenho.
Memórias Dinâmicas(SDRAM – Synchronous Dynamic RAM) Estas memórias passaram a ter o seu sinalizador de desempenho como sendo a freqüência deste clock. Para as memórias de clock igual a 100 MHz, eram denominadas PC100, as de clock igual a 133 MHz, PC133. Em um barramento de 32 bits (4 bytes), a taxa de transferência da memória PC100 é de 400 MB/s e a PC133 é de 532 MB/s.
Memórias Dinâmicas(Empacotamento de Memória) As memórias costumam vir empacotadas em dois tipos de módulos (SIMM e DIMM). Módulo SIMM (Single In Line Memory Module – Módulo de Memória em Linha Única). Módulo DIMM (Dual In Line memory Module – Módulo de Memória em Linha Dupla). Estes termos dizem respeito apenas ao empacotamento das memórias dinâmicas. É possível usar qualquer um dos dois tipos. Houve uma tendência no uso do módulo DIMM no empacotamento das memórias dinâmicas. Os módulos SIMM possuíam 30 ou 72 pinos Os módulos DIMM possuíam 168 pinos