O 88000 é o primeiro Microprocesador RISC de Motorola . Originalmente chamou-se 78000 como uma homenagem à série de microprocesadores 68000. Ainda que o número em parte poderia indicar alguma relação com a família MC68000 de CISCs, as diferenças são profundas. MC68000 é representativo dos CISCs recentes, enquanto o 88000 é um exemplo puro de um sistema RISC.
Conteúdo |
A maioria das instruções fazem referência só a operandos de registo. Só umas quantas instruções de ónus-armazenamento simples fazem referência à memória. Os bits no subcódigo de operação indicam ónus e armazenamento de palavra (32 bits) média palavra e byte. Para os últimos dois casos, um ónus em um registo pode-se tratar como com signo ou sem signo. Um aspecto único do conjunto de instruções é a inclusão de 8 instruções de campo de bits.
Os campos sobre os que estas instruções operam podem ser de qualquer largura e estão localizados em qualquer lugar da palavra. Este hardware do campo de bits pode apagar, pôr, extrair e inserir campos nos registos. Este hardware, em esencia, pode efectuar um corrimiento de um sozinho ciclo de qualquer número de bits a um campo de qualquer largura.
Como quase todos os sistemas RISC, o 88000 emprega uma longitude fixa de instruções de 32 bits. Os primeiros 6 bits constituem o código da operação da instrução. Na maioria das instruções, o código de operação é seguido por dois campos de registos de 5 bits (o resultado e o primeiro operando). Os restantes 16 bits podem conter um operador imediato ou uma deslocação para uma instrução de bifurcaron condicional. Para as instruções que envolvem três registos (2 fontes e um resultado, ou destino), 11 bits permanecem para uma expansão do código de operação a fim de especificar operações particulares.
Observe-se que em todos os formatos, as posições dos campos finques se alinham. Portanto, a lógica do decodificador de instruções do processador sempre accesa os registos fontes e destinos desde a mesma localidade relativa dentro da instrução e simplifica o desenho do processamento em cascata.
O chip do processador principal consiste de múltiplas unidades de função independentes conectadas a um catálogo de registo com múltiplos portos. As unidades de função podem operar em forma independente e concorrente, proporcionando um médio muito eficiente de processamento de instruções.
Unidade de inteiros: Executa todos os acessos de aritmética de inteiros, campo de bits, booleanos e registo de controle.
Unidade de ponto flutuante: Proporciona 754 funções IEEE. Consiste de um sumador com processamento em cascata de cinco etapas e um multiplicador com processamento em cascata de seis etapas. Estes sistemas de processamento em cascata permitem que operações múltiplas de ponto flutuante sejam realizadas concorrentes.
Unidade de instruções: Responsável por procurar instruções e remeter o código de operação decodificado via assinales de controle às unidades de execução apropriadas contidas no processador.
Unidade de cor de Dados: Responsável por carregar e armazenar operandos no processador e na memória externa.
O autocarro de cor (autocarro M) interface de duas unidades de administração de cor cache (ou CMMU, cache memory manager unit) ao sistema de cor, um para os dados e outro para as instruções. Esta arquitectura permite que as instruções sejam procuradas enquanto se estão a transferir operandos entre o processador e a memória; desta maneira, fornece um aumento considerável de velocidade.
O catálogo de registos consta de 32 registos de propósito geral de 32 bits; o registo 0 está alambrado com o valor de 0. Isto é conveniente para armazenar zeros em outros registos de cor. O registo R1 utiliza-se para armazenar em forma automática a direcção de volta para uma instrução de bifurcación ou salto a subrutina.
Com a arquitectura 88000, precisa-se algum médio para permitir que todas as unidades de função compartilhem o catálogo de registos sem se destruir uns a outros baseados em registos. O mecanismo empregado no 88000 conhece-se como pizarra de registos, neste ponto a unidade de função deve permanecer fazendo nada até que o registo desejado está liberto.
O processador inclui uma pizarra de registos, com um bit correspondente à cada um dos 31 registos (R0 se exclui já que não é possível o actualizar). Em qualquer momento que a unidade despacha uma instrução que toma mais de um ciclo de relógio para se executar, se põe o bit no registo pizarra que corresponde ao registo destino para esta instrução. O bit apaga-se quando o resultado se armazena no registo destino.
Com a arquitectura 88000, a cada uma das unidades de função tem uma arquitectura de processamento em cascata para proveer um grau de paralelismo tão alto como seja possível. Tem três etapas:
Durante a etapa de execução, a direcção no NIP transfere-se ao registo apuntador de execução de instrução (XIP) e a instrução ao registo de execução de instrução. Durante esta etapa, a instrução é transferida à unidade de função apropriada.
Pela cada um dos apuntadores de instrução, se mantém um registo sombra. Se uma excepção ocorre durante um ciclo, os registos sombra congelam-se para guardar os valores ao tempo da excepção. Estes são restituídos após o processamento de excepção.