Estàndard 696

L’Estàndard descriu el sistema d’interfície dels components del sistema informàtic interconnectat mitjançant un bus passiu de cent línies paral·leles, conegut com a bus S-100. (IEEE696-1983/1994)

En aquest bus digital, dispositius processadors i perifèrics intercanvien dades a una distancia màxima de 63,5cm, amb un màxim de 22 dispositius interconnectats i a una freqüència màxima de 6MHz.

El present article és un resum dels continguts de l’estàndard en el context de l’època, explicats de manera simplificada.

L’Estàndard pren com a referent els nivells de senyal TTL sense mencionar-ho implícitament. Tot el capítol 1 és una introducció a mode de conjunt de termes de referència, àmpliament superats a l’actualitat.

A fi d’abreujar la descripció funcional, que s’inicia al capítol 2, es resumeix dient que hi hauria dos tipus generals de dispositius: “Mestres” i “Esclaus“. Aquesta terminologia és deguda a que només una carta electrònica pot injectar energia elèctrica al bus al mateix temps, amén de causar una catàstrofe. Un altre cosa són les formes de finals de la Postguerra. Actualment es parlaria de Clients i Servidors respectivament.

Els Mestres, que només un d’ells pot ser el “mestre actiu”, proporcionen la capacitat de transferir “missatges dependents de dispositiu”. Aquesta “dependència” s’estableix per evita la col·lisió entre dispositius. El Model OSI és posterior, s’està desenvolupant en paral·lel, iniciat també a 1977 i no és publicat definitivament fins a 1984.

L’Estàndard IEEE696 distingeix dos tipus de mestres, un de permanent i únic i la resta de temporals. El mestre permanent s’ocupa també de passar el testimoni de “mestre actiu” als mestres temporals i recull el testimoni quan el mestre temporal ha acabat la seva activitat. No obstant, a l’apartat 2.3.5 (Dummy Mastering), l’estàndard puntualitza: “En casos on un nombre de processadors coexisteix en un sistema solitari com a mestres temporals, pot resultar ineficient des del punt de vista del sistema implementar un mestre permanent.” Com a solució l’estàndard planteja: “és admissible que el mestre permanent s’implementi com un maniquí, és a dir, com un dispositiu que no realitza cicles de bus, només proporciona un interval d’arbitratge per a que el control TMA s’assoleixi.” El TMA (Temporary Master Access) és la circuiteria que controla les transferències de “gant” possessió del bus entre mestres actius.

Els Esclaus, no generen cicles de bus per si mateixos. “Un dispositiu esclau respon a un cicle de bus iniciat per un mestre de bus. La memòria i els dispositius d’entrada/sortida són exemples d’esclaus de bus.” A vista del diagrama d’estats, l’esclau roman a l’estat inactiu llegint l’adreçament del bus (A0 a A23) constantment, comparant aquesta amb la pròpia. Això és clarament la funció d’un servidor darrera del seu “front office”.

Altrament diu l’Estàndard: “Un dispositiu esclau pot sol·licitar el servei a partir d’un mestre de bus generant una sol·licitud d’interrupció.” Per exemple: (falta paper a la impressora).

Protocols de Transferència

El model de TMA és adoptat també pel comitè de treball de FUTUREBUS IEEE896. De fet, els diferents comitès es veien en la necessitat d’adaptar-se a les diferents modalitats de busos i dels xips de diferents fabricants de l’època. Eduard Roberts, dissenyador de l’Altair 8800 a 1975 necessitava un bus de dades diferenciat d’entrades (DI0 a DI7) i de sortides (DO0 a DO7) des del punt de vista d’adaptar-se a circuits de memòria i perifèria d’un únic sentit de transferència. Però a 1977, al iniciar la redacció de l’Estàndard, el bus de dades ja s’havia regularitzat com a bidireccional per molts fabricants, es reduiria a una qüestió d’identitat amb els origens i els nous formats de processadors ja apuntaven als 16 bits com a amplada de bus desitjable.

L’apartat 2.6 planteja la definició d’aquestes solucions fent descripcions de blocs funcionals necessaris per a fer compatible busos unidireccionals amb bidireccionals i amb ambdues amplades de 8 i 16 bits del bus de dades, sense oblidar les correlacions parell-sanar pròpies de distingir la posició de byte dintre de la paraula.

Per si tot això fos poc, els diferents mestres havien de compartir dades i programes contra plaques, normalment comunitàries, de memòria RAM i ROM. Endemés, els perifèrics de memòria de massa, com discs floppy i discs durs, varen trigar a adoptar els 16 bits i en conseqüència l’acceptació del concepte DMA, que fou un tema de difícil estandarització. De fet, la versió presentada a 1979 de la mà de Mark Garetz i Sol Libes a la revista COMPUTER anomenava DMA al mecanisme d’accés al mestre temporal, en lloc de TMA, presentat finalment a l’Estàndard de 1983. L’objectiu fonamental era moure dades i programes automàticament entre la memòria i els discs amb controladors especialitzats en plaques esclaves, en un context on només hi havia un processador principal.

Tempo de cicle de bus

La secció 2.7 descriu com i quins senyals intervenen en en la formació del cicle de comunicació entre els dispositius del bus. “El cicle de bus estàndard és un cicle pseudosincrònic,” i està compost de tres estats anomenats BS1, BS2 i BS3.

PHI és el rellotge del sistema. Cada mestre injecta aquest senyal al bus quan esdevé mestre actiu. Al mateix temps, senyalitza el primer cicle de PHI amb pSYNC a nivell alt. Durant pSYNC actiu, es genera un pols a pSTVAL el qual el seu flanc descendent indica que l’adreça col·locada al bus és estable. Aquest pols te la duració mínima de 30nS i amb aquest temps dibuixa una forma similar a PHI durant pSYNC. Això fa molt fàcil implementar pSTVAL amb una simple porta lògica. Aquest primer cicle de bus s’anomena BS1.

BS2 queda delimitat pels flancs ascendents del següent cicle PHI. En aquest període el mestre actiu informa de la intenció de lectura o escriptura amb els senyals pDBIN actiu alt o pWR* actiu baix, respectivament. Cal puntualitzar que ambdós senyals podrien ésser actius al mateix temps ja que el bus de dades és “doble unidireccional” originàriament (DI0-7, DO0-7). Al mateix temps, l’esclau afectat per la direcció activa en el bus pot validar el senyal RDY (ep! que no estic preparat). Aquest senyal retarda l’arribada de BS3 afegint estats d’espera i forma OR lògica amb el senyal XRDY, amb un interruptor situada al panel frontal del sistema. (Aquest selector deixava en estat d’espera indefinida al processador per acció manual de l’usuari)

En conseqüència, a cada flanc ascendent de PHI, el mestre actiu comprova l’estat de les línies RDY, demorant així la declaració de l’estat BS3 fins que ambdós senyals d’espera esdevinguin inactives. Això es realitza a través d’una porta OR situada dintre del mestre. A BS3 el mestre retira l’estat actiu dels senyalitzadors pDBIN i pWR* al flanc descendent de PHI i finalment tanca els amplificadors d’adreces en acabar BS3 en el darrer flanc ascendent de PHI.

Caldrà mencionar que el següent cicle de rellotge PHI pot ser novament BS1 si el mestre ho senyalitza amb pSYNC i en conseqüència l’inici immediat d’un nou cicle de bus. No obstant, el mestre pot trigar tants cicles de PHI com sigui necessari per a tornar a iniciar el nou cicle de bus.

Hi ha quatre tipus de cicles de bus de lectura (M1 per a ROM, sMEMR per a RAM, sINP per a perifèria i sINTA per a reconeixement d’interrupció). En quan al cicle de bus d’escriptura hi ha els homòlegs oposats sOUT i MWRT. Aquest últim, i degut a que inicialment es generava al frontal de sistema, els mestres han de portar un clip de configuració per mantenir la compatibilitat amb sistemes de 1975.

Un mestre pot ser capaç de dur a terme un cicle d’avortament d’esclaus per impedir que l’esclau mantingui el senyal Ready (RDY) actiu indefinidament. No obstant l’Estàndard no especifica quin nombre de cicles de PHI cal considerar que l’esclau està bloquejant l’evolució del bus S-100.

TMA, Accés de Mestre Temporal

Les operacions de transferència del bus entre mestres es defineixen amb dos protocols: el de cicle de transferència i el d’arbitratge de sol·licitants del bus.

Fins a 16 mestres temporals poden sol·licitar el bus. Quan un mestre temporal sol·licita el bus ho fa activant HOLD* a nivell baix. El mestre permanent ni està obligat a acceptar ni participa en l’elecció del mestre temporal amb el qual cedir el control del bus. Quan finalment accepta transferir el bus ho fa activant el senyal de reconeixement pHLDA, que romandrà a nivell alt durant tot el domini del mestre temporal.

Quan es valida pHLDA s’inicia l’arbitratge per decidir el candidat al bus, que es fa per comparació de les OR cablejada en les línies TMA0 a TMA3 confrontades amb l’adreça pròpia codificada de cada mestre temporal (Veure Figura 10 al document de l’estàndard). Un i només un dels mestres temporals ha de poder aconseguir d’activar la seva línia interna ISMINE i no es poden repetir els nombres de prioritat codificats en la totalitat del bus.

La transferència es produeix en una progressió en dos temps. En un primer temps els amplificadors d’adreces, estats i dades de sortida del mestre permanent són inhibits des les mestre temporal pel senyal XFERI. Quedaran els senyals de control solapats entre ambdós mestres fins que en el segons temps s’inhibeixen els amplificadors de senyals de control del mestre permanent des de XFERII. El mestre temporal queda lliure per generar cicles de bus durant “un temps indefinit de cicles.”

En acabar, el mestre temporal torna els senyals al mestre permanent alliberant HOLD* i fent la progressió inversa XFERII, XFERI dels amplificadors de bus del mestre permanent.

Protocol d’Interrupció

Un esclau sol·licita l’atenció del mestre actiu per mitjà de el senyal INT*. Si el mestre actiu no és el mestre permanent hi hauria dues possibles solucions: Renunciant al bus per que sigui atesa pel mestre permanent o atenent la interrupció ell mateix.

De la mateixa manera cal distingir els diferents reclams d’interrupció d’un esclau per mitjà dels vectors d’interrupció VI7 a VI0. Com es gestionen aquest vectors no és quelcom que el text deixi tancat d’una manera clara. De fet deixa moltes possibilitats a l’aire. Una podia ser que aquests vectors els gestioni el propi mestre permanent, que és el que a la pràctica es fa, però no apareix en el text. Per contra es posa a divagar sobre una placa especialitzada en gestió d’interrupcions. Això ho va implementar Intel en un xip al costat de la CPU i sembla que ningú més hagi discutit si es podia fer d’una altre manera.

Especificacions electromecàniques

L’Estàndard estableix els nivells elèctric d’alimentació per a contenir reguladors de tensió amb marge suficient per assegurar l’estabilitat de les tensions internes davant de variacions de càrrega. També estableix el factor de forma de la placa i el seu connector de ressalt amb els distanciaments entre carta i carta especificats. És tal com es feia a la praxis de 1975. El tercer capítol passa com un manual de característiques que literalment descriu allò que es fa i cóm es fa sense cap aportació o suggeriment de cara al futur. Al les especificacions de 1979 es detallava una zona on es recomanava no instal·lar connectors, tal com ho feia CROMEMCO en el seu producte. Aquesta recomanació desapareix en la versió de 1983.

jordi.autocet@gmail.com