El Bellmac 32 és un microprocessador desenvolupat per la divisió de processadors de Bell Labs el 1980, implementat mitjançant tecnologia CMOS i va ser el primer microprocessador que podia moure 32 bits en un cicle de rellotge. El microprocessador conté 150.000 transistors i va millorar la velocitat del disseny CMOS mitjançant l'ús de "circuits dòmino". Va ser dissenyat tenint en compte el llenguatge de programació C. Després de la seva creació, es va produir una versió millorada anomenada Bellmac 32A, que després es va cancel·lar juntament amb el seu successor, el processador de conjunt d'instruccions reduït en llenguatge C "Hobbit" (CRISP).

Història El processador Bellmac 32 va ser desenvolupat per enginyers d'AT&T en tres ubicacions diferents de Bell Labs: Indian Hill, Holmdel i Murray Hill

Com que els dissenyadors no disposaven d'eines d'automatització, tots els dissenyadors de xips havien d'utilitzar llapis de colors per completar el disseny inicial. Més tard, Steve Law va desenvolupar un programa informàtic que va ajudar en la digitalització dels dissenys inicials.

El desenvolupament del Bellmac 32 va produir una nova tècnica de disseny de circuits anomenada lògica domino, considerada un gran avenç per a la producció del microprocessador. Les proves realitzades durant la fabricació van indicar que una freqüència de rellotge fins i tot superior a la de 4 La velocitat objectiu de MHz era possible. Tanmateix, la implementació de la lògica de control va resultar inesperadament complicada. Aquestes complicacions van limitar la velocitat final, un cop acabat i provat tot el xip, a 2 MHz. L'equip ho va considerar com un progrés, però no tan reeixit, ja que no podia complir els objectius de disseny inicials d'AT&T.

Les reunions de disseny posteriors van donar lloc al projecte Bellmac 32A, com a segona generació del microprocessador Bellmac. El projecte va tornar a seleccionar la tecnologia CMOS i va fixar la freqüència de rellotge objectiu a 6,2. MHz. Els ajustaments per maximitzar la mida dels transistors i les resistències i minimitzar les interconnexions van ser fonamentals per complir les especificacions. Els enginyers van col·locar un dibuix d'enginyeria de 6 x 6 metres de la disposició del xip al terra d'una sala gran. Les proves dels xips produïts a partir del circuit complet van superar la velocitat de disseny i van assolir freqüències de rellotge de 7, 8 i fins i tot 9. MHz.

Després de la dissolució d'AT&T, Bell Labs es va convertir en un component de Western Electric Amb aquest canvi, el Bellmac 32 va ser rebatejat com a WE 32000 Les versions actualitzades del xip incloïen el WE 32100, anunciat el juny de 1984, i el WE 32200.

Arquitectura El Bellmac 32 té una arquitectura segmentada amb una unitat de recuperació d'instruccions que serveix per controlar l'accés a la memòria principal i una unitat d'execució que serveix per monitorar el procés i manipular dades.

La cua d'instruccions s'omple amb les instruccions extretes de la memòria. La unitat aritmètica d'adreces serveix per als càlculs d'adreces.

Suport de llenguatges de programació L'arquitectura Bellmac 32 ofereix diverses comoditats per als implementadors de llenguatges de programació. La invocació de procediments implica la manipulació de quatre registres (el comptador de programa, el punter de pila, el punter de fotograma i el punter d'arguments) per transferir el control entre procediments del programa, juntament amb l'ús de la pila del programa per preservar el contingut dels registres i comunicar arguments i valors de retorn. S'ofereixen quatre instruccions per donar suport a aquest "enllaç de procediments": call desa l'adreça de retorn i el punter de l'argument a la pila, save conserva els registres seleccionats en el rang de R3 a R8 ambdós inclosos, restore restaura qualsevol registre desat prèviament i return obté el marc de la pila abans de la invocació i retorna el control a l'adreça de retorn desada. Es proporcionen modes d'adreçament que ofereixen accés a la pila en relació amb el punter d'argument i el punter de marc.

Gestió de processos L'arquitectura admet un model particular de gestió de processos, on un procés utilitza una única pila d'execució i on un bloc de control de processos (PCB) conserva el context d'execució de cada procés, mantenint còpies dels valors de registre del procés juntament amb dades de "moviment de bloc" que descriuen la configuració de memòria virtual d'un procés. Per comoditat dels implementadors de sistemes operatius, el suport arquitectònic per a la commutació de processos inclou dues instruccions dedicades anàlogues a les instruccions tradicionals de salt a subrutina i retorn de la subrutina. La instrucció de crida al procés desa els registres d'usuari i de control a la placa de circuit imprès (PCB) d'un procés determinat a través del registre privilegiat del punter de bloc de control de processos (PCBP), capturant així l'estat d'execució del procés actual i permetent que es suspengui, seguit de la càrrega d'aquests registres des de la placa de circuit imprès d'un altre procés, restaurant així l'estat d'execució d'un procés determinat. Mentrestant, la instrucció de retorn al procés simplement carrega l'estat del procés des d'una PCB determinada. En realitzar "moviments de bloc", les instruccions de commutació de processos poden reconfigurar automàticament la disposició de la memòria virtual activa sense més intervenció del sistema operatiu, i combinant aquesta reconfiguració amb actualitzacions dels registres del processador, aquestes instruccions permeten restaurar convenientment l'entorn d'execució del procés.

Gestió d'interrupcions Juntament amb el registre PCBP, el registre Interrupt Stack Pointer (ISP) s'utilitza per referir-se a una posició en una pila d'interrupcions comuna, que s'utilitza per registrar els punters de PCB que fan referència a l'estat emmagatzemat dels processos interromputs. Quan es lliura una interrupció, la instrucció dedicada al procés de crida s'utilitza per suspendre el procés en execució, l'adreça del qual a la PCB s'emmagatzema a la pila d'interrupcions, i per canviar a un gestor d'interrupcions seleccionat d'una taula. Les interrupcions es comporten com a processos separats i, per tant, tenen la seva pròpia pila d'execució. Un cop finalitzada la gestió d'interrupcions, la instrucció de retorn al procés s'utilitza per reprendre el procés suspès. La selecció d'un gestor d'interrupcions adequat implica una taula de punters de PCB en una ubicació de memòria virtual fixa.

Privilegis, crides al sistema i gestió d'excepcions L'arquitectura Bellmac 32 admet quatre nivells de privilegis. Per canviar entre nivells de privilegis, es proporciona el mecanisme de "transferència controlada", que es basa en una jerarquia de taules de dos nivells per definir el nivell de privilegis mitjançant el registre Processor Status Word (PSW) i la ubicació de cada procediment o controlador que s'invocarà mitjançant una "crida controlada", proporcionant així un mecanisme de crida al sistema. El maneig d'excepcions utilitza aquest mecanisme de crida controlada per dirigir l'execució a un controlador adequat, que per a una excepció "normal" es troba a través d'una taula de segon nivell particular, les entrades de la qual corresponen cadascuna a un Codi d'Estat Intern (ISC) particular, definit al registre PSW. Perquè les característiques relacionades amb les excepcions del Bellmac 32 funcionin, també s'espera que un nucli del sistema operatiu resideixi a l'espai d'adreces virtuals de cada procés, ja que una excepció, que es basa en una transferència controlada, no canviarà la configuració de la memòria virtual.

Instruccions que donen suport al llenguatge C Tot i que diverses operacions proporcionades per l'arquitectura Bellmac 32 admeten llenguatges d'alt nivell en general, es proporcionen instruccions específiques que admeten convencions del llenguatge C, en particular les instruccions de còpia de cadenes i final de cadena que es basen en la representació del llenguatge C de les cadenes de caràcters finals amb un byte zero. També es proporciona una operació general de còpia de blocs que utilitza un paràmetre de longitud de bloc explícit per definir la quantitat de dades que s'han de copiar entre ubicacions.

Registres Registres generalsR0Registre 0R1Registre 1R2Registre 2R3Registre 3R4Registre 4R5Registre 5R6Registre 6R7Registre 7R8Registre 8R9 / FPPtr. de fotogramaR10 / APArgument PtrR11 / PSW (vegeu més avall)Paraula d'estat del processadorR12 / SPPunts de pilaR13 / PCBPBloc de control de processos PtrR14 / ISPPunt de pila d'interrupcionsR15 / PCComptador de programes El Bellmac 32 té setze registres de 32 bits. Tres d'aquests (ISP, PCBP, PSW) són privilegiats, s'utilitzen per donar suport al sistema operatiu i només es poden escriure quan el microprocessador està en mode kernel. Hi ha tres registres més (SP, AP, FP) que algunes instruccions utilitzen com a punters de pila. El nivell d'execució, definit a la paraula d'estat del processador, pot ser un dels quatre estats següents: nucli, executiu, supervisor i usuari.

Hi ha setze registres addicionals al WE 32200, que es divideixen en dos grups de vuit registres: R16 a R23 són registres d'usuari, llegibles i escrivibles en qualsevol mode de processador, destinats a l'emmagatzematge de variables globals i temporal; R24 a R31 són registres del nucli o privilegiats, que només són escrivibles en mode del nucli, i que es poden llegir en qualsevol altre mode. Aquests registres addicionals es van introduir per permetre que els compiladors de llenguatges d'alt nivell generessin codi que els pogués utilitzar per emmagatzemar dades d'ús freqüent, millorant així el rendiment d'execució d'aquests llenguatges.

Instruccions Aquest microprocessador té 169 instruccions, que estan optimitzades per executar programes escrits en el llenguatge de programació C. En conseqüència, el format de les cadenes de caràcters s'adapta a les especificacions del llenguatge C, per exemple.

Les instruccions poden tenir fins a tres operands. El processador no té instruccions aritmètiques de coma flotant ni decimals, que posteriorment van ser proporcionades pels coprocessadors WE 32106 i WE 32206.

Memòria El Bellmac 32 implementa múltiples tipus d'adreçament de memòria, com ara lineal, immediat de 8, 16 o 32 bits, registre, registre indirecte, desplaçament curt, desplaçament absolut i indirecte de 8, 16 o 32 bits.

Ús Els processadors WE 32x00 es van utilitzar als ordinadors de la sèrie 3B d'AT&T Computer Systems, i es van presentar com a productes disponibles comercialment en forma de les gammes 3B2, 3B5 i 3B20 a la fira Comdex de primavera de 1984. A mitjans de 1985, AT&T va començar a oferir el WE 32100 i el xipset associat, juntament amb sistemes d'avaluació "a nivell de placa", a altres fabricants.

Xips de suport AT&T tenia una línia de WE 32x00 compatibles amb xips i perifèrics, que incloïa:

Unitat de gestió de memòria WE 32101 / 32201 Rellotge WE 32102 (10, 14, 18 o 24 MHz) Controlador DRAM WE 32103 Controlador DMA WE 32104 / 32204 WE 32106 / 32206 Unitat d'Acceleració Matemàtica Ordinador de placa única WE 321SB VMEbus Junta d'Avaluació WE 321EB

Referències

Categoria:Microprocessadors