IBM System/3



El IBM System/3 (introduït en 1969 i discontinuado en 1985) va ser un computador econòmic d'IBM per a tasques d'oficina orientat a clients nous o a organisacions que encara mantenien computadores de la Serie IBM 1400 o màquines de contabilitat. Va ser el primer membre de la família que IBM va cridar "llínea de ranc mig". A estos computadors li'ls va conéixer com minicomputadores, i actualment servidors.
Descripció
Implementava un nou format de targeta perforada que era més chica i almagasenava 96 caràcters. En lloc de les perforació rectangulars clàssiques de les targetes IBM, la nova targeta tenia chicotets forats d'1 mm de diàmetro, més semblats als que posseïa la cinta perforada. Les senyes eren almagasenades en format BCD de sis bits, en columnes de 32 caràcters cada una, o huit bits en format EBCDIC, en dos perforació extra ubicades al final de les columnes.
Les targetes tenien lloc per a 128 caràcters impresos en 4 columnes de 32 caràcters cada una. L'IBM System/370, en un llector de targetes apropiat, podia també processar les noves targetes.

Moltes unitats del System/3 model 10 original varen ser enviades solament en I/S de targeta perforada (llectura, perforació i ordenament) i una impressora. Hi havia dos models de llector de targetes. El més comú era conegut com MFCU ("multifunction card unit", unitat multifunción de targetes), i llegia, perforava i ordenava les noves targetes de 96 columnes. El segon model, menys comú, era el MFCM ("multifunction card machine", màquina de targetes multifunción), i realisava les mateixes operacions, pero solament en les targetes més comunes de 80 columnes. La MFCM era proveïda per a grans companyies que ya tenien equips per a targetes de 80 columnes. L'impressora nativa era la 5203 que pot vore's en la fotografia; dita impressora era de carro de caràcters en 33 martells mòvils que es colocaven en 4 posicions contigües. Hi havia 3 models de diferents velocitats: 100ppm, 200ppm i 300ppm. Les impressores disponibles eren varis models d'impressora de llínea IBM 1403, la qual havia segut originalment construïda per al computador IBM 1401. En sistemes que solament tenien llectora de targetes, el compilador RPG/II s'eixecutava en dos fases. La primera fase iniciava llegint des d'una gronsa d'entrada del MFCU, i el programa font es llegia després del compilador. Un reporte intermig es perforava en targetes, les quals eren llegides en la segona fase de compilació. En este moment es perforava en targetes el programa eixecutable. Este programa podia llavors iniciar-se ("IPL", per "Initial Program Lloeu", programa de càrrega inicial) per a realisar el procés desijat. Este procediment podia requerir més d'una hora per a un programa de tamany apreciable.
Per a l'almagasenament de massa, el System/3 tenia un disc dur d'un sol plat, del tamany aproximat d'una pizza; en principi, cada plat almagasenava 2,5 MB de senyes. La configuració estàndar per a almagasenament era d'un o dos discs fixos, cada u en una unitat separada, els que normalment contenien el sistema operatiu i els programes de l'usuari. Adicionalment, cada disc fix podia tindre incorporat un cartuig de disc removible; estos típicament contenien archius de senyes associades a vàries aplicacions, per eixemple una llista de clients, i els usuaris tenien varis d'ells. D'eixa manera, un sistema de gama baixa podia soportar 10 MB d'almagasenament (dos fixos i dos removibles), pero açò era molt car i no era comú.
L'almagasenament fòra de llínea estava disponible en la compra d'unitats de cinta externa que podien llegir i escriure en les cintes IBM estàndar.
L'impressió era normalment per l'impressora de llínea o per una impressora de matriu de punts. Una màquina d'escriure selectric era a sovint usada com a consola.
El System/3 venia en forma estàndar en un compilador RPG/II, i usava un llenguage de control de tasques simple cridat OCL, el qual era semblat superficialment al famós (o infame) Job Control Language.
El System/3 i els models que ho varen seguir (System/32, System/34, System/36 i System/38, després l'AS/400 i iSeries) són generalment denominats minicomputadoras, o en la terminologia d'IBM "sistemes de ranc mig" ("midrange systems"), en contrast als grans mainframes d'IBM.
Joc d'Instruccions
Una de les coses més interessants del System/3 era el seu joc d'instruccions. Estaven optimisades per a dos aspectes clau d'este producte: memòria principal llimitada, i el llenguage de programació RPG.
El S/3 original (models 10 i els posteriors 6, 8 i 12) tenien 29 instruccions, totes ocupaven entre 3 i 6 bytes (24 a 48 bits). Els primers 4 bits proveïen un montó d'informació: "1111" significava que esta era una instrucció sense operants, és dir, un comando. ej. Iniciar I/O (l'operador I/S es definia carregant prèviament els registres d'I/S). "11xx" i "xx11" indicaven una instrucció d'1 operant, com un forcall. Si xx era 00 l'operant era direccionar per la direcció de 16 bits completa. Si xx=01 o 10 indicava que devia usar-se una direcció en desplaçament, usant el registre índex 1 o 2 respectivament. La direcció base s'havia carregat prèviament en un dels dos registres i l'instrucció contenia el desplaçament de fins a 256 bytes (8 bits de direccionament).
Atres patrons per al primer mig byte indicaven instruccions de dos operants. "0000" indicava que abdós operants eren direccionar per direcció de 16 bits directa. "0100": l'operant 1 usa el registre 1 com la seua base; l'operant 2 usa direccionament directe. "0110": l'operant 1 usa el registre 1 com la seua base, l'operant 2 usa el registre 2. I aixina successivament.
Els restants 4 bits del primer byte definixen en més precisió les instruccions. Esta estructura significava que existia la capacitat de tindre fins a 64 operacions en total: 16 comandos (encara que mai va haver més de cinc en tota la gama de productes); 16 instruccions d'1 operant començant en 11xx; 16 instruccions d'1 operant començant en xx11; 16 instruccions de 2 operants.
Ademés dels dos registres índex ya mencionats (referits com 1 i 2, o 01 i 10 en binari) hi havia atres registres. "Registre 4" (0100) era el registre de direcció d'instrucció ("Instruction Address Register, IAR) el qual apuntava a la direcció en curs.
"Registre 8" (1000) era el registre de direcció de rellamada ("Address Recall Register", ARR), establit per a determinades instruccions. Entre elles, el bot condicional (mnemònic "BC") la qual era usat per a apuntar al byte immediat posterior a l'instrucció del forcall. Per a la gent dels mainframes d'IBM açò significava que el bot del S/3 podia conectar-se a un BALR ("branch and link register", registre de bot i enllaç) condicional. Era molt usat per a salar a una subrutina i retornar després de processar-la. Finalment, el "Registre 16" (00010000) era el registre d'estat del programa, que contenia coses com el resultat d'una instrucció de comparació.
Note's que els registres eren per a direccionament i estat del programa; no per a aritmètica.
Entre les 29 instruccions es proveïen instruccions aritmètiques de suma/resta binàries i decimals. Multiplicació i divisió no es proveïen per hardware, i devien manejar-se per mig de rutines de software. No existia aritmètica de menge flotant. Açò va continuar inclús en els models posteriors, i més sofisticats, System/34 i System/36.
Tot açò era més complicat inclús en el System/3 model 15, i els System/34 i 36. Encara que encara es manejava la memòria per mig de direccionament de 16 bits, estos sistemes podien soportar 64k de memòria principal (fins a 512K, i teòricament més), usant traducció de direccions per a canviar d'una pàgina de 64K a una atra. En els Registres de Traducció de Direccions ("Address Translation Registers", ATR) s'indicava la pàgina de memòria a usar, i el seu contingut es concatenava en la direcció de 16 bits del programa per a produir la direcció real. Estos "ATRs" estaven sol disponibles per al sistema operatiu.
Com acotación al marge, el S/3 model 10 original (i el posterior model 12) tenien una forma primitiva de multiprogramación cridada Funció de Doble Programa ("Dual Program Feature"). Açò no donava més direccionament de la memòria, pero donava dos jocs de registres i instruccions, els quals podien canviar d'un "nivell de programa" a l'atre. Les instruccions d'I/S també varen ser modificades per a intercanviar quan una I/S s'iniciava. Era possible manipular els registres de direccionament de les instruccions des de l'atre nivell de programa, per lo que es podia jugar-li mals passades a la màquina. ¡¡Tot inofensivamente divertit!!
Fins ara, solament es va explicar el primer byte. El següent byte ("Q") era normalment un calificador, com especificar el número de bytes traslladats en un moviment de caràcters, o la condició de prova per a un forcall. Un parell d'instruccions usaven este byte per a un operador immediat d'1 byte. El byte restant era per a operadors de desplaçament o de direccionament, o per a detalls d'alguns comandos.
Ací tenim un eixemple per a mostrar tot açò treballant: un comando simple, Bot Condicional (Conditional Jump), un tipo especial de forcall condicional (sol alvanç, fins a 256 bytes), adequat per a bots curts dins del mateix bloc de memòria: Byte de còdic d'Op.= F2 (és en hexadecimal, Hex F és 1111 en binari, Hex 2 (0010) definix el op); byte Q= 00000001 especifica que "botarem" si el registre de condició té el bit de "igual" en 1 (encés); Operant= 00011000: si la condició és verdadera, botem cap a avant 24 bytes.
Com s'ha indicat anteriorment, este conjunt d'instruccions s'ha optimisat per a dos aspectes de la família del Systema/3. El primer va ser la poca cantitat de memòria disponible; el segon era el llenguage de programació RPG. Els que saben alguna cosa sobre els primers RPG, sabran sobre els indicadors-interruptors binaris utilisats per al programa de control de fluix. Més de 100 d'estos estaven disponibles i eren ben usats (a lo manco en els temps més recents). Per mig del format d'instruccions explicat més dalt, moltes de les operacions indicades als indicadors podien cabre en sol 3 bytes. Per eixemple... una llínea de RPG podia testear un indicador pora "On": 3 bytes per a un op. "Test Bits On"; després 3 bytes per a un Bot, com es va explicar abans, molt útils per al compilador RPG. Aforrar el byte impar ací i per allà era bo quan solament es tenien 64K per a treballar. I, pel S/3 en sí mateixa, que incloïa el sistema operatiu (el qual va aumentar a prop de 20K en el model 10 en l'introducció del "Communication Control Program", CCP).
- Este artícul conté una traducció derivada de «IBM System/3» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.