Un PDP-11 es un modelo de computadora de la línea PDP ( Procesador de datos programable ) construido por Digital Equipment Corporation (DEC) entre 1970 y 1993 .
Todos los PDP-11 son de 16 bits y pertenecen a la clase de miniordenadores . Fueron extremadamente populares porque combinaban modularidad, una excelente relación calidad / precio, y su uso no se limitaba a un solo sector de aplicación: también se encontraban en los laboratorios de física para la adquisición de datos que en las empresas de contabilidad. Finalmente, el mundo universitario también ha adquirido un gran número de estas máquinas.
Esta gama también es popular debido a que sirvió de base para el desarrollo de la Unix funcionamiento del sistema y el lenguaje C . El pre-incremento (++ i) y el post-incremento (i ++) de C hicieron posible, en particular, explotar esta posibilidad del lenguaje de máquina PDP-11.
También sucedió cuando el IBM 1130 lanzado en 1969, que equipó a muchos laboratorios y escuelas de ingeniería de todo el mundo, comenzó a envejecer sin que IBM propusiera un sucesor. Aparte de su enorme biblioteca de software gratuito, el 1130 no tenía ninguna ventaja particular sobre el PDP-11 en términos de velocidad o costo.
Como muchos otros, este rango ha desaparecido porque su espacio de direcciones de memoria era demasiado limitado (16 a 18 bits , 22 como máximo). Fue reemplazado por VAX , que significa Virtual Address eXtension , 32 bits. Los VAX tienen un modo de funcionamiento "compatible con PDP-11".
Los primeros PDP-11 se construyeron alrededor del bus UNIBUS . Los últimos modelos, con el conjunto de instrucciones incluido en algunos chips y llamado LSI-11 , se basan en el bus (más estrecho) llamado Q-BUS .
El procesador del PDP-11 tiene 8 registros , dos de los cuales tienen usos especiales: el registro 7, el PC (para Contador de programa o contador de programa) y el registro 6, el puntero de pila (SP, a Stack Pointer ). Los otros registros R0, R1, ..., R5 y son de uso general. El último registro es el registro de estado.
15 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R0 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R1 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R2 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R3 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R4 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R5 | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R6 (SP) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | R7 (PC) | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_____________________________________________________________/ registres (16 bits) 15 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | CM | PM | R | | PRI | T | N | Z | V | C | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_____________________________________________________________/ registre d'état(16 bits)Los significados de las banderas en el registro de estado son:
No todos los modelos PDP-11 tienen exactamente el mismo tipo de registros de estado, el que se muestra aquí corresponde a los modelos más avanzados.
Hay tres clases:
Hay tres conjuntos de instrucciones posibles:
Cada instrucción especifica una operación a realizar, posiblemente operandos (registros, etc.) y un modo de direccionamiento .
El PDP-11 define 7 formatos. En todos los formatos que se describen a continuación:
El campo de modo se mantiene en 3 bits. Por ejemplo, una instrucción de dos operandos contiene dos campos de registro y dos campos de modo, cada uno de los cuales describe cómo interpretar el campo de registro.
Si consideramos solo los bits más a la izquierda (el tercero es el bit de indirección, ver más abajo):
El bit más a la derecha del modo es el bit de indirección: si este bit es uno, el direccionamiento será indirecto:
Tenga en cuenta que no existe un modo "inmediato": esto se logra utilizando el modo 2 (autoincrementación). De hecho, la PC apunta a la palabra que sigue a la instrucción, y el incremento posterior hace que pase a la siguiente instrucción después de que el procesador cargue el valor inmediato que sigue a la instrucción que se está ejecutando.
El uso de la PC como registro crea 4 modos nuevos:
Los modos de direccionamiento post-incrementado y pre-decrementado se utilizarán en particular en asociación con el puntero de pila SP: - (SP) que permite apilar y (SP) + desapilar.
Ejemplo: CLR (R0) 005010
Ejemplo: ADD R0, (R1)
NB: algunas instrucciones (ASH, ASHC, MUL, DIV) solo pueden tener un registro como fuente, en este caso el código de operación se extiende del bit 9 al bit 15:
15 11 9 8 6 5 3 2 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération | Rn | mode | Rn | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_________/ \_____________________/ source destinationEl campo de desplazamiento está firmado, lo que permite un desplazamiento de -128 a +127 bytes.
Para la instrucción JSR (Jump to Subroutine):
15 9 8 6 5 3 2 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération | Rn | mode | Rn | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_________/ \_____________________/ lien destinationPara la instrucción RTS (retorno de subrutina):
15 3 2 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération | Rn | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ \_________/ lienEMT, TRAP, BPT, IOT, CSM, RTI, RTT: sin formato específico.
CLC, CLV, CLZ, CLN, CCC, SEC, SEV, SEZ, SEN, SEC: sin formato específico.
15 5 3 2 1 0 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ | code opération | O | N | Z | V | C | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+HALT, WAIT, RESET, MTPD, MTPI, MFPD, MFPI, MTPS, MFPS, MFPT: sin formato específico.
Esta opción se llama FPP o FP-11 , FP para Floating Point . Agrega 6 nuevos registros de 64 bits (dos veces 32) para los cálculos, así como algunos otros especializados (como un registro de estado). El funcionamiento del procesador flotante es distinto del procesador estándar del PDP-11: aparte de un ligero retraso cuando el procesador flotante recupera la instrucción en la memoria, los dos procesadores calculan de forma independiente.
Este nuevo conjunto de instrucciones está disponible cambiando el microcódigo .
Denominado CIS, por Commercial Instruction Set , este conjunto de instrucciones centradas principalmente en la gestión de cadenas de caracteres está diseñado para acelerar las operaciones que normalmente requieren los programas de gestión (escritas en COBOL por ejemplo).
Permite la conversión de la representación de números en forma de caracteres a valores binarios (y viceversa) o cálculos directamente en representaciones de "cadenas de caracteres".