PT803091E - Sistema informatico - Google Patents

Sistema informatico Download PDF

Info

Publication number
PT803091E
PT803091E PT95914446T PT95914446T PT803091E PT 803091 E PT803091 E PT 803091E PT 95914446 T PT95914446 T PT 95914446T PT 95914446 T PT95914446 T PT 95914446T PT 803091 E PT803091 E PT 803091E
Authority
PT
Portugal
Prior art keywords
instruction
compressed
bit
instructions
memory
Prior art date
Application number
PT95914446T
Other languages
English (en)
Inventor
Paul William Denman
Original Assignee
Communicate Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Communicate Ltd filed Critical Communicate Ltd
Publication of PT803091E publication Critical patent/PT803091E/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30156Special purpose encoding of instructions, e.g. Gray coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Iron Core Of Rotating Electric Machines (AREA)
  • Advance Control (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

1
“SISTEMA INFORMÁTICO” A presente invenção relaciona-se com sistema informáticos, e mais especificamente com sistemas nos quais a largura do bus de memória é menor do que a largura da palavra usada pelo processador.
•N A presente invenção encontra aplicação particular em sistemas RISC (RISC significa Reduced Instruction Set Computer, Computador com Conjunto de Instruções Reduzidas), embora não esteja restrita a tais sistemas. Os sistemas RISC são assim chamados por contraste com os sistemas baseados em microprocessadores convencionais tais como os bem conhecidos microprocessadores 80286, 80386 e 80486, que são chamados processadores CISC (Complex Instruction Set Computer, Computador com Conjunto de Instruções Complexas). O RISC é um modelo ou sistema que usa instruções que são geralmente mais simples do que as instruções usadas pelos sistemas CISC. A intenção do modelo RISC é que o ganho no tempo de execução de instruções individuais compense a perda de velocidade devida ao número de instruções acrescido. Uma das características usadas nos modelos RISC para alcançar velocidade aumentada é que a quantidade de processamento de instruções deve ser reduzida, e uma técnica usada para alcançar isto é usar instruções longas, de maneira a que muitos dos bits e campos das instruções possam ser usados directamente em vez de terem de ser descodificados. Por razões semelhantes de velocidade e de conveniência geral, os sistemas RISC também tendem a usar um comprimento de palavra de dados relativamente longo, fazendo coincidir o comprimento de palavras da instrução. Deste modo, um sistema RISC bem estabelecido é a memória (isto é, o processador) ARM (Advanced RISC Machine, Máquina RISC Avançada), que é um sistema de 32 bits.
As memórias e os buses de acesso às memórias são normalmente, no entanto, relativamente estreitos (curtos em termos de comprimento de palavras), tipicamente 8 ou 16 bits. Os sistemas e buses de memória ampla são, evidentemente, possíveis, mas por uma variedade de razões (incluindo o facto de que as memórias amplas são relativamente caras), são relativamente pouco comuns. Não é, por conseguinte, usual para um sistema informático compreender uma memória ampla de 8 ou 16 bits acoplada a um processador de 32 bits.
Isto, obviamente, envolve uma falta de coincidência entre a largura da memória e a largura das palavras do processador. Esta falta de coincidência é normalmente ultrapassada pelo uso de engates de armazenamento temporário intermédio. Um conjunto de quatro engates de 8 bits é acoplado a um bus de memória de 8 bits ou 16 bits e a um bus de processador de 32 bits; os dados são carregados nos engates e lidos a partir deles no lado da memória em 4 ciclos de palavras de 8 bits ou 2 ciclos de palavras de 16 bits, e são carregados para e ledos a partir deles no lado processador em ciclos únicos de palavras de 32 bits. O objectivo geral da presente invenção é fornecer, num sistema no qual a largura do bus de memória é menor do que a largura das palavras usadas pelo processador, um melhoramento na coincidência dos buses da memória e do processador.
De acordo com a presente invenção é fornecido um sistema informático compreendendo uma memória, um processador, meios para passar instruções da memória para o processador e meios de pré-processamento de instruções comprimidas para expandir instruções comprimidas, compreendendo um descodificador de instruções comprimidas que expande uma instrução comprimida para o seu comprimento total caracterizado pelo facto de que os meios de pré-processamento de instruções comprimidas compreendem ainda: um circuito detector de instruções comprimidas que detecta uma combinação de bits pré-determinada numa instrução que vem da memória; e um multiplexador que, sob o controle do circuito detector dev instruções comprimidas, passa quer a instrução original, quer a saída do descodifícador de instruções comprimidas para o processador. É conhecido um sistema, da JP 5 324 314 A, Hitachi (Patent Abstracs of Japan, vol 018, no. 153 (P - 1079), 14 03 94), no qual os espaço de memória ocupado por um programa é reduzido pela compressão das instruções (usando um algoritmo de compressão público). Nesse sistema, todo o programa (isto é, todas as instruções) é descomprimido entre a memória e o registador de instruções.
Os principais sistemas aos quais a presente invenção é aplicável têm duas características, no que diz respeito ao formato das instruções e à maneira como as instruções são extraídas da memória. O formato das instruções para o processador inclui um campo de condições, cujo conteúdo indica as condições sob as quais a instrução é executada; um dos códigos que o campo de condições pode incluir é um código NV indicativo de que a instrução não é para ser executada (NV = Never, Nunca). Uma instrução é extraída da memória, isto é, passada do bus da memória para o processador, através de um conjunto de registos auxiliares que são carregados sequencialmente com palavras da memória (através do bus da memória). O campo de condições é incluído / numa palavra anterior (isto é, não a última palavra) da memória (de facto, a primeira palavra).
Em tais sistemas, o código NV não é normalmente usado; isto é, os programas normalmente não incluem instruções com este código. Tais instruções actuariam meramente como instruções NOP (No Operation, Nenhuma Operação) e seriam ignoradas; incluí-las não serviria nenhum propósito útil, e apenas gastaria tempo de execução e espaço de memória. O sistema presente fornece meios para detectar, em tais sistemas, o código NV dos registos auxiliares, e meios que respondem a estes para, expandir uma instrução comprimida nos registos auxiliares para uma instrução de comprimento total. (De uma forma mais geral, deve haver alguma instrução que não é normalmente usada e à qual se 4
pode, portanto, mudar a função para uso como uma instrução comprimida). A busca de uma instrução comprimida requer apenas metade dos ciclos de memória do que a busca de uma instrução completa de 32 bits. O sistema funciona, por conseguinte, mais rapidamente; e o aumento da velocidade é acentuado se o tempo de ciclo da memória é maior do que o tempo de ciclo do processador, como será muitas vezes o caso.
Um sistema informático que incorpora a invenção será agora descrito, a título de exemplo, com referência aos desenhos, nos quais: A Fig. 1 é um diagrama de blocos do sistema; e A Fig. 2 é um diagrama estilizado do circuito de descodificação de instruções comprimidas do sistema.
Fazendo referência à Fig. 1, o sistema compreende um bus de memória 10 acoplado a uma unidade de microprocessador ARM de 32 bits MEMÓRIA ARM 14 através de um conjunto de engates de armazenamento temporário intermédio 11. Dependendo das memórias específicas às quais o bus de memória se destina a ser acoplado, o bus de memória 10 pode ser um bus de 8 bits 10A ou um bus de 16 bits compreendendo dois canais de 8 bits ou sub-buses 10A e 10B. No sistema específico mostrado, este bus é um bus de 16 bits que pode ser usado para transportar tanto palavras de 8 bits como de 16 bits, de modo a que tanto possa ter memórias de 8 bits como de 16 bits (ou ambas) acopladas a ele.
Deve nótar-se que apenas aquelas partes do sistema que lidam directamente com a transferência de instruções da memória para o processador são mostradas e descritas. Obviamente que o sistema terá também partes que lidam com, por exemplo, a transferência de palavras operandas (que geralmente também viajarão sobre partes do bus de memória 10), mas estas não são relevantes para os fins presentes e não são mostradas. 5 5
Os engates 11 consistem em 4 unidades de engate de 8 bits LTCH dá 11 — 1 a 11 - 4. Em situação de operação normal, estes são carregados a partir da memória (não mostrada) quer por meio de duas palavras sequenciais de 16 bits, sendo a primeira palavra alimentada para os engates 11 - 1 e 11 - 2 e a segunda para os engates 11 - 3 e 11-4, quer por meio de 4 palavras de 8 bits que são alimentadas sequencialmente para os engates 11-1, 11 - 2, 11 - 3 e 11 - 4. As saídas de 8 bits destes engates são combinadas e agrupadas num bus de instrução de 32 bits 12A que passa através de um multiplexador MUX 13 para se transformarem num bus de instrução 15 que é acoplado à memória ARM 14. O comprimento da instrução para a memória ARM 14 é de 32 bits, coincidindo com a largura do bus de instrução 12A e 15. O formato de instrução para este processador inclui um campo de Condição que ocupa os 4 bits superiores (D31 - 28, isto é, bits 31 - 28 na palavra, com os bits identificados como D31 a DO). O código que este campo pode conter está efectivamente apenso ao código op (operation code, código de operação) na instrução, para causar ou modificar a execução da instrução na dependência da condição especificada; os códigos de condição típicos são Equal (Igual), Not equal (Não igual), Negative (Negativo), Overflow (Excesso), Less than (Menos do que), e Always (Sempre). A parte seguinte da instrução é o que pode ser designado como o código op propriamente dito; todos os códigos op habituais como Add (Acrescentar), Load (Carregar), Shift (Deslocar), Branch (Ramificar) e assim por diante, são fornecidos. O que resta da instrução é dividido em outros campos, de maneiras que podem depender do código op específico, definindo, por exemplo, um desvio, um endereço de dados de memória, um parâmetro de deslocamento, valores de dados imediatos, etc.
Do total de 16 códigos de condição possíveis nos bits D31 - 28, 15 têm significado. O 16° é Never (NV, Nunca), o que significa que a instrução não é realizada - isto é, não existem condições sob as quais a instrução seja realizada. Este código NV é, de facto, 1111. Como é observado acima, este código de condição não é normalmente usado. No sistema presente, este código de condição é usado, mas para um fim diferente. (Isto significa que no sistema presente, o código de condição NV não pode ser 6 6
usado par o seu fim normal de indicar uma instrução que não é para ser realizada seja em que condição for. Se um programa tiver de incluir instruções usando o código de condição NV, estas podem ser substituídas por instrução NOP (No Operation, Nenhum Operação).
Os engates de 11 - 1 a 11 - 4 armazenam os bytes da palavra de instrução completa de 32 bits em ordem de bytes, com o byte superior (D31 - 24) no engate 11 -1, até ao byte inferior (D7 - 0) na palavra do engate 11 - 4. O código de condição é, por conseguinte, armazenado nos 4 bits superiores do engate 11-1. Estes 4 bits são levados da saída deste engate como um bus de 4 bits 12C, que é alimentado a um circuito detector de instruções comprimidas COMP DEP 16. O circuito 16 inclui uma porta AND de 4 bits, alimentada com bits D31 - 28 no bus 12C, e detecta, portanto, quando uma instrução comprimida é encontrada. A memória ARM 14 gera um sinal Nopc (Not op-code fetch, busca não código op) quando (em termos simplificados) não está a pedir instruções, isto é, ou está a realizar um ciclo interno ou os dados estão a ser transferidos. O circuito 16 fica operacional quando o sinal Nopc é baixo, isto é, quando a memória ARM requer uma instrução. O circuito da máquina de compressão PCKR ST M/C 17 controla os múltiplos acessos à memória requeridos para extrair, para o bus de memória 10, as 2 ou 4 palavras de memória sucessivas que juntas constituem uma palavra de instrução de 32 bits. Destes modo, este circuito normalmente faz com que os engates 11-1 (para palavras de memória de 8 bits) ou engates 11 - l e 11 - 2 (para palavras de memória de 16 bits) sejam carregados primeiro, seguidos pelos restantes 3 ou 2 engates (em 3 outros ciclos ou um único outro ciclo respectivamente). O circuito da máquina de compressão 17 gera um sinal de controle Nwait (Not wait, Não esperar) que é alimentado à memória ARM 14 para indicar quando a instrução que está a ser procurada está disponível. Este sinal muda normalmente para indicar que a instrução está disponível quando o último registo auxiliar 12 - 4 foi preenchido (isto é, depois de o 4o ciclo de memória (para palavras de memóifia de 8 bits) ou o 2o ciclo de memória (para palavras de memória de 16 bits) ter sido completado. No sistema presente, a saída do circuito 16 é também passada para o circuito da máquina de compressão 17,e este circuito 17 muda o sinal Nwait assim que os primeiros dois engates 11 - 1 e 11 - 2 tenham sido carregados se a instrução é uma instrução comprimida. O circuito 17 também aborta o carregamento dos engates 11 - 3 e 11 - 4, uma vez que a instrução que está a ser procurada seja gerada somente a partir do conteúdo dos 2 engates superiores 11-lell—2sea instrução for uma instrução comprimida. A detecção de uma instrução comprimida é alcançada assim que o engate 11-1 é carregado; isto é, assim que a primeira palavra de memória tiver sido lida. Se o comprimento da palavra de memória é de 16 bits, então o engate 11-2 terá sido carregado ao mesmo tempo que o engate 11 - 1; se o comprimento da palavra de memória é de 8 bits, o engate 11-2 será carregado no próximo ciclo de memória.
Os 16 bits dos engates 11 - 1 e 11 - 2 juntos são combinados num bus de 16 bits 12B, que é alimentado a um circuito descodificador de instruções comprimidas COMP INSTN DEC 18. Se a instrução é uma instrução comprimida, estes dois engates contêm a instrução completa, em forma comprimida. A função do circuito 18 é descomprimir a instrução, isto é, expandi-la para uma instrução de 32 bits no formato padrão.
Para uma instrução normal a instrução (de 32 bits) está disponível no bus 12A; para uma instrução comprimida, a instrução comprimida (de 32 bits) está disponível no bus 19. Estes dois buses são alimentados ao multiplexador 13, que é controlado pela saída do circuito detector de instruções comprimidas 16. Deste modo, para uma instrução normal, essa instrução será passada do bus 12A para o bus de entrada de instruções 15 da memória ARM 14; para uma instrução comprimida, essa instrução será passada (na sua forma descomprimida) do bus 19 para o bus 15. (Para uma instrução normal, o circuito 18 irá produzir um contra-senso, mas a sua saída não passará através do multiplexador e não terá, assim, qualquer efeito). 8 8
0 circuito descodificador de instruções comprimidas 18 tem de gerar uma instrução de 32 bits a partir dos 16 bits da instrução comprimida (e destes 16 bits, os 4 primeiros são 1111). O número de instruções que podem ser comprimidas é, por conseguinte, relativamente pequeno, tanto no número de códigos op que podem ser usados para compressão como nos parâmetros que as instruções comprimidas podem ter quando estão descomprimidas. As instruções escolhidas para compressão devem, sendo assim, ser seleccionadas como instruções que são passíveis de ser usadas frequentemente (para atingir o efeito máximo na aceleração do sistema), e como instruções para as quais o número de opções ou tamanho de parâmetros são relativamente pequenos. (No entanto, se uma instrução de tipo passível de ser comprimida tiver de ter um parâmetro que está fora da gama passível de ser comprimida, a instrução pode simplesmente ser usada na sua forma normal (descomprimida)). O tipo de instrução que é seleccionada para compressão no sistema presente é a instrução da ramificação. Esta tem um campo de condição que é (ramificação em) ou Zero ou Non-zero (não-zero) (0000 ou 0001), um código op (D27 - 25) de 101, um bit de direcção (D24) que definiu a direcção da ramificação, e um desvio de 24 bits (D23 -0) que define a distância da ramificação.
Em forma comprimida, os bits D31 - 28 são 1111 (o campo do código de condição usado para indicar uma instrução comprimida), o bit D27 indica uma instrução de ramificação, o bit D26 indica se o campo de condição deve ser ramificação em Zero ou ramificação em Não-zero, o bit D25 indica a direcção da ramificação, e os bits D24 -16 indicam a distância da ramificação. Para descodificar isto, se o bit D27 é 0, os bits D27 - 24 devem estar programados para 1010; os bits D31 - 28 devem estar programados para 0000 ou 0001 na dependência do bit D26 (0 ou 1); os bits D23 - 9 devem estar programados para todos ls ou todos Os na dependência do bit D25 (0 oul); e os bits D8 - 0 devem estar programados para os bits D24 - 16. (Os bits de saída D23 -9 preenchem efectivamente o campo de distância D8 - 0 de 9 a 24 bits; para uma direcção para diante, eles são simplesmente Os, mas para uma direcção para trás, eles 9
têm de ser todos ls para fazer com que as possíveis distâncias coincidam com as possíveis distâncias para diante). A Fig. 2 mostra, de forma simplificada e abstracta, um circuito lógico que consegue isto. A linha superior mostra os bits de entrada da instrução comprimida no bus 12B; a linha inferior mostra os bits de saída da instrução expandida no bus 19.
Como mostrado a 25, os primeiros 4 bits de entrada de D31 - 28 da instrução comprimida são 1111; esta combinação de bits é reconhecida pelo circuito detector de instruções comprimidas 16. O bit de entrada D27 é 0, indicando que a instrução comprimida é uma instrução de ramificação; este está acoplado através do circuito 26 aos bits de saída D27 - 24 para gerar o padrão de bit 0101 (o código op da ramificação) nestes bits. Os bits de saída D31 - 29 são forçados para 0 e o bit de entrada D26 está acoplado por uma linha 27 ao bit de saída D28 para gerar o código de condição 0000 ou 0001. Os bits de entrada D24 - 16 estão acoplados pelas linhas 28 aos bits de saída D8 -0, de maneira a que o padrão destes bits de entrada seja copiado directamente para estes bits de saída. O bit de entrada 25 está acoplado pelo conjunto de circuitos 29 aos bits de saída D23 - 9; o conjunto de circuitos 29 acopla este bit de entrada a todos estes bits de saída.
Se outros tipos de instrução (códigos op) se destinam a ser seleccionados para compressão, o conjunto de circuitos do circuito descodificador de instruções comprimidas 18 deve, claro está, ser expandido. Irá também ser necessário incluir, na instrução comprimida, um código identificativo do código op. Para cada código op, haverá um conjunto respectivo de circuitos descodificadores (apesar de que, em alguns casos, possa ser possível a alguns dos circuitos componentes serem partilhados entre códigos op diferentes). Um detector de código op e descodificador será também necessário, para reconhecer o código op e seleccionar o conjunto correspondente de circuitos descodificadores. (No sistema como é descrito, o bit D27 pode ser usado para distinguir o código op de ramificação (D27 = 0) de um outro código op; isto permite usar mais um código op (identificado na forma comprimida por D27 = 1). 10 ,:Οί O circuito descodificador de instruções comprimidas 18 pode ser construído usando circuitos lógicos, usando, por exemplo, técnicas ASIC. Altemativamente ou adicionalmente, o circuito descodifícador de instruções comprimidas 18 pode usar técnicas de consulta a tabela. - O circuito detector de instruções comprimidas 16, o circuito da máquina de compressão 17, o circuito descodifícador de instruções comprimidas 18, e o multiplexador 13 foram descritos e mostrados como unidades distintas separadas do processador (memória ARM) 14. Será, no entanto, de notar que estes circuitos, ou alguns e/ ou algumas partes deles, podem ser considerados como incorporados em ou fazendo parte do processador 14.
Lisboa, 17 ABR. 2000

Claims (4)

  1. >*1 1
    I REIVINDICA ÇÕES 1. Um sistema informático que compreende uma memória (no bus 10), um processador (14), meios para passar instruções da memória para o processador, e meios de pré-processamento de instruções comprimidas (13, 16, 18) para expandir instruções comprimidas, compreendendo um descodifícador de instruções comprimidas (18) que expande uma instrução comprimida para o seu comprimento total caracterizado pelo facto de que os meios de pré-processamento de instruções comprimidas compreendem ainda: um circuito detector de instruções comprimidas (16) que detecta uma combinação de bits pré-determinada (25) numa instrução que vem da memória; e um multiplexador (13) que, sob o controle do circuito detector de instruções comprimidas (16), passa quer instrução original quer a saída do descodifícador de instruções comprimidas (18) para o processador (14).
  2. 2. Um sistema informático de acordo com a reivindicação 1, em que a combinação de bits pré-determinada compreende um código NV (Never, Nunca) num campo de condição das instruções.
  3. 3. Um sistema informático de acordo com qualquer uma das reivindicações anteriores, que compreende uma máquina de compressão (17), acoplada ao processador (14) e o circuito detector de instruções comprimidas (16), que dá sinal ao processador (14) assim que a instrução está disponível.
  4. 4. Um sistema informático de acordo com qualquer uma das reivindicações anteriores, em que o descodifícador de instruções comprimidas expande um campo de desvio de endereço da instrução. Lisboa, | 7 Â8R. 2000 Maria SiIvir.n
    ‘iy 13 s^erreira Uustnal LISSOA
PT95914446T 1994-04-05 1995-04-05 Sistema informatico PT803091E (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9406666A GB9406666D0 (en) 1994-04-05 1994-04-05 Computer system

Publications (1)

Publication Number Publication Date
PT803091E true PT803091E (pt) 2000-07-31

Family

ID=10753009

Family Applications (1)

Application Number Title Priority Date Filing Date
PT95914446T PT803091E (pt) 1994-04-05 1995-04-05 Sistema informatico

Country Status (11)

Country Link
US (1) US5784585A (pt)
EP (1) EP0803091B1 (pt)
AT (1) ATE190148T1 (pt)
AU (1) AU686358B2 (pt)
DE (1) DE69515339T2 (pt)
DK (1) DK0803091T3 (pt)
ES (1) ES2145908T3 (pt)
GB (1) GB9406666D0 (pt)
GR (1) GR3033496T3 (pt)
PT (1) PT803091E (pt)
WO (1) WO1995027244A1 (pt)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2307072B (en) 1994-06-10 1998-05-13 Advanced Risc Mach Ltd Interoperability with multiple instruction sets
GB2354354B (en) * 1996-06-10 2001-05-02 Lsi Logic Corp An apparatus and method for detecting and decompressing instructions form a variable-length compressed instruction set
DE19629130A1 (de) * 1996-07-19 1998-05-14 Philips Patentverwaltung Signalprozessor
JP3781519B2 (ja) * 1997-08-20 2006-05-31 富士通株式会社 プロセッサの命令制御機構
FI113708B (fi) 1997-09-29 2004-05-31 Nokia Corp Menetelmä ja laite suoritettavien ohjelmien tallentamiseksi ja käyttämiseksi
US6101592A (en) * 1998-12-18 2000-08-08 Billions Of Operations Per Second, Inc. Methods and apparatus for scalable instruction set architecture with dynamic compact instructions
EP0945782B1 (en) * 1998-03-27 2004-05-06 Motorola, Inc. System for converting instructions, and method thereto
US6185670B1 (en) * 1998-10-12 2001-02-06 Intel Corporation System for reducing number of opcodes required in a processor using an instruction format including operation class code and operation selector code fields
US6338132B1 (en) * 1998-12-30 2002-01-08 Intel Corporation System and method for storing immediate data
KR100308211B1 (ko) * 1999-03-27 2001-10-29 윤종용 압축 명령을 갖는 마이크로 컴퓨터 시스템
EP1050801B1 (en) * 1999-05-03 2006-12-13 STMicroelectronics S.A. An instruction supply mechanism
US7761857B1 (en) * 1999-10-13 2010-07-20 Robert Bedichek Method for switching between interpretation and dynamic translation in a processor system based upon code sequence execution counts
US6408382B1 (en) * 1999-10-21 2002-06-18 Bops, Inc. Methods and apparatus for abbreviated instruction sets adaptable to configurable processor architecture
US6691305B1 (en) * 1999-11-10 2004-02-10 Nec Corporation Object code compression using different schemes for different instruction types
JP3629181B2 (ja) * 2000-03-28 2005-03-16 Necマイクロシステム株式会社 プログラム開発支援装置
US6594821B1 (en) 2000-03-30 2003-07-15 Transmeta Corporation Translation consistency checking for modified target instructions by comparing to original copy
JP2002215387A (ja) * 2001-01-22 2002-08-02 Mitsubishi Electric Corp 命令トランスレータを備えたデータ処理装置およびメモリインタフェース装置
US6985633B2 (en) * 2001-03-26 2006-01-10 Ramot At Tel Aviv University Ltd. Device and method for decoding class-based codewords
ITMI20022003A1 (it) * 2002-09-20 2004-03-21 Atmel Corp Apparecchio e metodo per la decompressione dinamica di programmi.
US7310723B1 (en) 2003-04-02 2007-12-18 Transmeta Corporation Methods and systems employing a flag for deferring exception handling to a commit or rollback point
US7698539B1 (en) * 2003-07-16 2010-04-13 Banning John P System and method of instruction modification
EP1686467B1 (en) * 2005-01-31 2008-03-12 STMicroelectronics S.r.l. Method and system for correcting errors in read-only memory devices, and computer program product therefor
US20060174089A1 (en) * 2005-02-01 2006-08-03 International Business Machines Corporation Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture
US8413162B1 (en) 2005-06-28 2013-04-02 Guillermo J. Rozas Multi-threading based on rollback
CN102156629A (zh) * 2011-05-04 2011-08-17 苏州国芯科技有限公司 32位指令扩展的方法
US9361097B2 (en) * 2013-10-18 2016-06-07 Via Technologies, Inc. Selectively compressed microcode
TWI522910B (zh) * 2013-10-18 2016-02-21 威盛電子股份有限公司 微處理器、選擇性解壓縮微程式碼方法、產生選擇性壓縮微程式碼方法、產生描述方法以及電腦程式產品
US9372696B2 (en) 2013-10-18 2016-06-21 Via Technologies, Inc. Microprocessor with compressed and uncompressed microcode memories
US11847427B2 (en) 2015-04-04 2023-12-19 Texas Instruments Incorporated Load store circuit with dedicated single or dual bit shift circuit and opcodes for low power accelerator processor
US9817791B2 (en) * 2015-04-04 2017-11-14 Texas Instruments Incorporated Low energy accelerator processor architecture with short parallel instruction word
US9952865B2 (en) 2015-04-04 2018-04-24 Texas Instruments Incorporated Low energy accelerator processor architecture with short parallel instruction word and non-orthogonal register data file
US10503474B2 (en) 2015-12-31 2019-12-10 Texas Instruments Incorporated Methods and instructions for 32-bit arithmetic support using 16-bit multiply and 32-bit addition
US10401412B2 (en) 2016-12-16 2019-09-03 Texas Instruments Incorporated Line fault signature analysis

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5713549A (en) * 1980-06-25 1982-01-23 Nec Corp Program compression store system
US4633388A (en) * 1984-01-18 1986-12-30 Siemens Corporate Research & Support, Inc. On-chip microprocessor instruction decoder having hardware for selectively bypassing on-chip circuitry used to decipher encrypted instruction codes
US5057837A (en) * 1987-04-20 1991-10-15 Digital Equipment Corporation Instruction storage method with a compressed format using a mask word
JPH0395629A (ja) * 1989-09-08 1991-04-22 Fujitsu Ltd データ処理装置
JPH0454271A (ja) * 1990-06-22 1992-02-21 Mitsuba Electric Mfg Co Ltd 燃料供給ポンプ
JPH04205421A (ja) * 1990-11-30 1992-07-27 Matsushita Electric Ind Co Ltd オペレーティングシステムの起動方法およびその起動装置
JPH05324314A (ja) * 1992-05-20 1993-12-07 Hitachi Ltd データ処理装置
JPH06348490A (ja) * 1993-06-08 1994-12-22 Hitachi Ltd 演算処理方法、及びマイクロコンピュータ
JPH07121352A (ja) * 1993-10-21 1995-05-12 Canon Inc 演算処理装置

Also Published As

Publication number Publication date
GR3033496T3 (en) 2000-09-29
EP0803091B1 (en) 2000-03-01
US5784585A (en) 1998-07-21
DE69515339D1 (de) 2000-04-06
AU2144095A (en) 1995-10-23
EP0803091A1 (en) 1997-10-29
DE69515339T2 (de) 2000-12-07
ATE190148T1 (de) 2000-03-15
ES2145908T3 (es) 2000-07-16
WO1995027244A1 (en) 1995-10-12
GB9406666D0 (en) 1994-05-25
DK0803091T3 (da) 2000-07-31
AU686358B2 (en) 1998-02-05

Similar Documents

Publication Publication Date Title
PT803091E (pt) Sistema informatico
KR100230105B1 (ko) 간략화된 명령 세트 프로세서의 성능 개선 방법 및 그 프로세서 시스템
KR100230643B1 (ko) 고성능 프로세서의 브랜치 예상 동작 방법 및 장치
JP3554342B2 (ja) 拡張ワード寸法及びアドレス空間を有する逆互換性コンピュータアーキテクチュア
KR0185988B1 (ko) 멀티프로세서 또는 파이프 라인식 프로세서 시스템에서 데이타의 보존을 확실히 하는 방법
US5687336A (en) Stack push/pop tracking and pairing in a pipelined processor
KR100231380B1 (ko) 감소된 명령 세트 프로세서 내부 레지스터의 데이타를 조작하는 방법 및 장치
US6820195B1 (en) Aligning load/store data with big/little endian determined rotation distance control
KR100190252B1 (ko) 고속 프로세서에서의 브랜치 처리 방법 및 장치
US5652900A (en) Data processor having 2n bits width data bus for context switching function
US5826074A (en) Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
AU635016B2 (en) Decoding multiple specifiers in a variable length instruction architecture
US4897787A (en) Data processing system
US20010010072A1 (en) Instruction translator translating non-native instructions for a processor into native instructions therefor, instruction memory with such translator, and data processing apparatus using them
JPH0135366B2 (pt)
JP3203401B2 (ja) データ処理装置
JPH03218523A (ja) データプロセッサ
US7051168B2 (en) Method and apparatus for aligning memory write data in a microprocessor
US5119324A (en) Apparatus and method for performing arithmetic functions in a computer system
US5053986A (en) Circuit for preservation of sign information in operations for comparison of the absolute value of operands
JPH0496825A (ja) データ・プロセッサ
US6615339B1 (en) VLIW processor accepting branching to any instruction in an instruction word set to be executed consecutively
JP2000137612A (ja) 特殊ミリコ―ド命令によって条件の設定およびテストを行う方法
US20050114629A1 (en) Method and apparatus to extend the number of instruction bits in processors with fixed length instructions, in a manner compatible with existing code
JP2000029684A (ja) コンピュ―タ・システム