PT803091E - Sistema informatico - Google Patents
Sistema informatico Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 59
- 230000006835 compression Effects 0.000 claims description 10
- 238000007906 compression Methods 0.000 claims description 10
- 238000007781 pre-processing Methods 0.000 claims description 4
- 239000000872 buffer Substances 0.000 abstract description 3
- 230000008878 coupling Effects 0.000 description 17
- 238000010168 coupling process Methods 0.000 description 17
- 238000005859 coupling reaction Methods 0.000 description 17
- 238000000034 method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30156—Special purpose encoding of instructions, e.g. Gray coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction 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 1I 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. 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. 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. 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
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)
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)
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 | 演算処理装置 |
-
1994
- 1994-04-05 GB GB9406666A patent/GB9406666D0/en active Pending
-
1995
- 1995-04-05 DE DE69515339T patent/DE69515339T2/de not_active Expired - Fee Related
- 1995-04-05 PT PT95914446T patent/PT803091E/pt unknown
- 1995-04-05 AU AU21440/95A patent/AU686358B2/en not_active Ceased
- 1995-04-05 DK DK95914446T patent/DK0803091T3/da active
- 1995-04-05 WO PCT/GB1995/000787 patent/WO1995027244A1/en active IP Right Grant
- 1995-04-05 ES ES95914446T patent/ES2145908T3/es not_active Expired - Lifetime
- 1995-04-05 AT AT95914446T patent/ATE190148T1/de not_active IP Right Cessation
- 1995-04-05 US US08/765,675 patent/US5784585A/en not_active Expired - Lifetime
- 1995-04-05 EP EP95914446A patent/EP0803091B1/en not_active Expired - Lifetime
-
2000
- 2000-05-24 GR GR20000401193T patent/GR3033496T3/el not_active IP Right Cessation
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) | コンピュ―タ・システム |