PT85811B - Processo e dispositivo para executar duas sequencias de instrucoes segundo uma ordem predeterminada - Google Patents

Processo e dispositivo para executar duas sequencias de instrucoes segundo uma ordem predeterminada Download PDF

Info

Publication number
PT85811B
PT85811B PT85811A PT8581187A PT85811B PT 85811 B PT85811 B PT 85811B PT 85811 A PT85811 A PT 85811A PT 8581187 A PT8581187 A PT 8581187A PT 85811 B PT85811 B PT 85811B
Authority
PT
Portugal
Prior art keywords
sequence
address
writing
data
execution
Prior art date
Application number
PT85811A
Other languages
English (en)
Other versions
PT85811A (pt
Inventor
Sten Edvard Johnson
Lars-Oerjan Kling
Original Assignee
Ericsson Telefon Ab L M
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 Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Publication of PT85811A publication Critical patent/PT85811A/pt
Publication of PT85811B publication Critical patent/PT85811B/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
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • 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/3824Operand accessing
    • G06F9/3834Maintaining memory consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)
  • Programmable Controllers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

MEMÚRIA descritiva
O presente invento refere-se a um processo e a um dispositivo para executar duas sequências de instruções numa ordem pre determinada, incluindo a selecção de instruções de leitura con tendo cada uma o seu endereço de leitura para a recuperação de dados armazenados numa posição de memória de uma pluralidade de posições da memória principal, acessível pelos seus endereços individuais, bem como a selecção de instruções de escrita cada uma contendo o seu endereço de escrita e dados para a transferência desses dados para uma posição da memória principal acessível por este endereço de escrita, não sendo os dados usados em conjunção cora a execução da sequência que é a segunda em ter mos de ordem, garantidamente independentes à partida, dos dados obtidos em conjunção com a execução da sequência que é primeira em termos de ordem.
Antecedentes do invento
Uma solução trivial, tradicional do tipo de problema de tratamento de informação acabado de expor acima, consiste em apenas iniciar a execução da sequência que, de acordo com o exposto anteriormente, se passa a partir deste momento a identificar como segunda sequência, só após terminar a execução da sequência que, de acordo com o exposto anteriormente se passa a partir deste momento a identificar como primeira sequência. Esta solução trivial é obtida como uma necessidade natural num processamento de dados com um único processador em que as sequên cias são executadas uma de cada vez usando as posições de memória principal comuns a ambas as sequências.
Sabe-se que a capacidade de processamento de dados aumenta se se usar um sistema de execução paralelo das sequências de instruções. Desde que as sequências sejam, garantidamente, mutuamente independentes desde o inicio, obtém-se umacperação em paralelo sem erros, utilizando o chamado preprocessamento ou mui tiprocessamento, ou então, pode usar-se igualmente um único pro cessador que inclua, pelo menos, duas unidades processadoras de
694
Ref: K/BP/EA/7736O/ /LM 4 o 90
-4dados, cada uma das quais executa a sua sequência de instruções. Sabe-se que os problemas de tratamento de dados tanto se podem resolver utilizando uma memória principal que é comum a uma pluralidade de unidades processadoras de dados bem como, em alternativa, se podem usar uma pluralidade de memórias individuais cada uma delas associada à sua unidade de processamento de dados e mutuamente actualizadas periodicamente.
Quando se trata de sequências de instruções sensíveis que se afectam mutuamente, e que portanto têm que ser efectuadas em determinada ordem, tem-se usado conforme indicado em várias publicações por exemplo o jornal Computer Design, de 15 de Agos to de 1985, PP 76-81, ou o Balance 8000 System Technical Summary, Sequent Computer System, Inc., linguagens de programação compiladores e correspondente programação (hardware) para o pro cessamento paralelo de sequências mutuamente independentes, enquanto que é acautelado o processamento paralelo das sequências sensíveis.
Descrição do invento
Conforme já referido na introdução, o presente invento, é relativa ao processamento de dados utilizando-se uma memória principal comum a ambas as sequências. No processamento de dados que se propõe, ambas as sequências são executadas em parale lo sem se ter que tomar em consideração inicialmente, a pretendida ordem predeterminada. Para garantir a ordem predeterminado é, no entanto, necessário impedir que os dados obtidos através das instruções de escrita seleccionadas, associadas com a segunda sequência, sejam transferidos para as posições da memória principal, durante a execução precedente da primeira sequên cia. A dependência da segunda sequência em relação à primeira sequência é comandada e a ordem pretendida é obtida com a ajuda de uma unidade de armazenamento temporário que inclui uma memória auxiliar e circuitos comparadores.
Os endereços obtidos devido às instruções de leitura selec cionadas durante a execução da segunda sequência, são armazenados temporariamente na memória auxiliar. Cada endereço de es66 694
Ref: K/Bf/EA/77360/ /LM 4690 *
-5crita seleccionado durante a execução da primeira sequência é comparado com cada um dos endereços de leitura armazenados na memória auxiliar. Desde que não se constate coincidência de en dereços, não se utilizarão dados dependentes da informação obti da durante a execução da primeira sequência, na execução da segunda sequência. Se acontecer o caso de, durante a execução da segunda sequência, a informação ter sido recuperada duma posição de memória principal, esta informação, então corrigida atra vés duma operação de escrita associada com a primeira sequência, i.e., se as duas sequências já não se puderem considerar mutuamente independentes, a memória auxiliar será limpa e as selecções das instruções da segunda sequência são iniciadas uma vez mais. 0 reinicio da execução segunda sequência é feito portanto no momento em que a primeira parte da primeira sequência já foi executada e consequentemente existe menos risco da segunda sequência ser dependente da restante parte da primeira sequência.
Os endereços de escrita e os dados obtidos através das ins truções de escrita seleccionadas durante a execução da segunda sequência, são igualmente armazenados na memória auxiliar. Cada endereço de leitura seleccionado durante a execução da segunda sequência é comparado com cada um dos endereços de leitura armazenados temporariamente na memória auxiliar. Se não for, então, obtida alguma coincidência de endereços, os dados são re cuperados da posição da memória principal que é acessível com a ajuda do endereço de escrita em questão, e caso se obtenha es sa coincidência, os dados atribuídos ao endereço em questão são recuperados da memória auxiliar.
Quando termina a execução da primeira sequência, os dados armazenados temporariamente na memória auxiliar são transferidos para as posições da memória principal, as quais são acessíveis pelos endereços de escrita associados, igualmente armazenados temporariamente.
Ao utilizar o tratamento de dados proposto, obtém-se um au mento de capacidade de processamento dos dados, se a execução da segunda sequência for independente, pelo menos, das instruções já seleccionadas quando tiver terminado a execução da pri-
694
Ref: K/BP/EA/7736O/ /LM 4690
meira sequência. Esta maior capacidade pode ainda ser aumentada se um endereço seleccionado puder ser armazenado temporariamente como endereço de leitura na memória auxiliar, apenas no caso deste endereço não ter já existido como um endereço de escrita durante a execução da segunda sequência.
As características específicas do invento, são evidenciadas nas reivindicações.
Breve Descrição dos Desenhos invento vai seguidamente, ser descrito em detalhe e em referência aos desenhos anexos, nos quais a figura 1 representa duas unidades processadoras de dados ligadas através de um con junto de condutores eléctricos (bus) a uma memória principal co mum. A figura 2 representa com mais pormenor do que a figura 1 um dispositivo memorizador de instruções, um circuito para acti vação e identificação e uma rede de portas lógicas, os quais es tão incluídos numa unidade processadora de dados. A figura 3 representa uma unidade de armazenamento temporário incluída numa unidade processadora de dados.
Descrição Detalhada duma Concretização do Invento
Um dispositivo de processamento de dados realizado de acordo com a figura 1 inclui uma memória principal 1 para armazenamento de dados, os quais são processados por, pelo menos, duas unidades processadoras de dados 2, as quais estão ligadas à memória principal através do ”bus geral 3. Cada uma das unidades processadoras de dados executa uma sequência de instruções para controlar unidades funcionais atribuídas (não representadas na figura 1) na execução de determinadas operações desejadas. Dependendo do facto das unidades processadoras de dados serem controladas por um processador comum, ou cada uma das unidades incluir uma pluralidade de processadores, assim é obtido, convencionalmente, em principio um dispositivo com um único processador ou um dispositivo multiprocessador, incluindo um bus comum e uma memória principal igualmente comum. Um dispositivo processador de dados deste tipo, incluindo uma pluralidade de
-766 694
Ref: K/BP/EA/7736O/ /LM 4690
unidades de processamento de dados e um bus é descrito, por exemplo, noA?X 286 Hardware Reference Manual da Intel, e no artigo Backup Support gives VME bus powerfull multi-processing architecture da Electronics de 22 de Março de 19θ4.
A figura 1 representa, de uma maneira muito simplificada, para o presente invento, duas uniaades processadoras de dados 2, que executam as já referidas primeira e segunda sequências de instruções, de acordo com uma ordem predeterminada. Para além dura dispositivo memorizador de instruções convencional 4, que selecciona, uma de cada vez, as instruções armazenadas numa memória de instruções, cada unidade processadora de dados inclui um meio 5, chamado circuito de arranque/identificador, para definir se a sua sequência própria é a primeira sequência indepen dente ou se é a segunda sequência possivelmente dependente, bem como possui ainda uma unidade de armazenamento temporário 6, pa ra armazenar temporariamente endereços e dados incluídos nas instruções, sendo estes dados usados, somente, na unidade processadora de dados executando a segunda sequência e, finalmente, inclui ainda uma rede de portas lógicas 7, que controlam a ligação da unidade prccessadora de dados ao bus geral 3·
Compreender-se-à da descrição anterior, que a carga do bud' geral é algo aumentada devido às instruções requeridas, temporariamente armazenadas, mas, assume-se que a capacidade de acesso do bus em relação às unidades processadoras de dados e em relação à memória principal, é tal que, o processamento da totalidade dcs dados poderá ser levado a cabo, sem distúrbios na ordem predeterminada. Do bus geral,a figura 1 representa um bus de endereços com vários condutores para transporte de vários valores binários (multibit) 8, uma linha 9, para transferênci cia de sinais de escrita, e um bus de dados multibit 10. Mais é indicado que o bus” de dados é ligado biaireccicnalmente à memória principal 1 e às unidades processadoras de dados 2, enquanto que o bus de endereços 8 e a linha 9 do sinal de escrita estão ligados unidireccionalmente a um circuito endereçador 11 e a uma entrada activadora de escrita 12 da memória prin cipal, na qual a recepção de um endereço e de um sinal de escrita determinam que o conteúdo do bus” de dados seja transfe-
694
Ref: K/BP/EA/77360/ /LM 469C
-8ricío para uma posição da memória principal acessível pelo endereço. Somente na condição de se ter recebido o endereço, é que cs dados são transferidos para a memória principal, sendo estes dados armazenados numa posição da memória principal acessível pele endereço, através do bus ae dados 1U para a unidade processadora de dados que envia o endereço. Os circuitos de arran que e identificação 5 das unidades processadoras de dados possuem, cada um, um sinal de saída iniciador 13 o qual está ligado a um sinal de entrada iniciador 14 no outro circuito 5· Ê, então, indicada a possibilidade de executar ambas as sequências em paralelo, que será descrita em seguida e usada no tratamento de informação proposto.
Finalmente, na figura 1 os circuitos de arranque identificadores, estão representados como possuindo, cada um, a sua saí da de sinal identificador 1$, o qual está ligado à primeira entrada de sinal identificador da unidade de armazenamento temporário 6 da outra unidade processadora de dados.
Λ figura 1 não mostra as memórias tampão de pequenas dimen soes (buffers) convencionais e as activações que são usadas e realizadas, respectivamente em ligação com as transferências de dados entre as unidades processadoras de dados e o bus geral, o qual conforme será descrito mais tarde, é igualmente utilizado para transferir endereços e sinais de escrita entre as unida des processadoras de dados.
A figura 2 representa com mais pormenor que a figura 1 alguns detalhes da unidade processadora de dados, cujo conheclmen to é necessário para a compreensão do processo de tratamento de informação proposto.
dispositivo memorizador de instruções 4 inclui uma memória de instruções 17 para armazenar uma sequência de instruções que é lida, uma instrução de cada vez, da memória de instruções, com a ajuda de um dispositivo de selecção 18 e, devido à activa ção de uma das saídas desse dispositivo.
A sequência inclui três tipos de instruções. 0 primeiro tipo, a seguir designado por instrução de leitura o qual é de signado por um dígito binário UM na posição bit de leitura 19, é usado para desencadear a recuperação dos dados de uma posição
694
Ref: K/BP/EA/7736O/ /LM 4690
-9de uma memória principal, para a qual o acesso é obtido com a ajuda de um endereço, por exemplo, Al, armazenado num certo número de posições de bit de endereço 20, sendo o endereço incluído na instrução de marcação do bit de leitura. 0 segundo tipo de instrução, a seguir designado por instrução de escrita e sendo identificado por um UM na posição de bit de escrita 21, é usado para desencadear a escrita de dados, por exemplo D2, numa posição de uma memória principal, sendo estes dados incluídos na instrução de marcação de escrita num certo número de posições de bits de dados 22, enquanto se usa um endereço, por exemplo Λ2, o qual está igualmente incluído na instrução de marcação do bit de escrita e armazenado nas posições de bit de endereço 20.
terceiro tipo de instrução, que é designado por ZERO estabelece as posições de bit 19 e 21, é usado para desencadear o tratamento da informação sem ler ou escrever na memória principal.
A utilização da informação, por exemplo Si, armazenada nas posições de bit 20 e 22, as quais estão associadas com o terceiro ti po de instrução não está dentro do âmbito deste invento, mas a figura 2 representa uma primeira porta OU lógico (0R) 23, a qual está incluída na referida rede de portas 7 e tem as suas entradas ligadas às posições de bit 19 e 21, e a sua saída ligada a uma entrada activadora inversora de uma primeira porta E lógico (AND) 24, a qual quando no estado activado transfere o conteúdo, por exemplo, Si, das posições de bit 20 e 22, directamente para a unidade processadora de dados. As instruções do terceiro tipo não carregam o bus geral ou a memória principal, a qual pode, por conseguinte, ser comum a uma pluralidade de unidades processadoras de dados, sem exigências de velocidades demasiado elevadas à memória principal e ao bus geral.
Os circuitos de arranque/identificação 5 das unidades processadoras ae dados, incluem, cada um deles, uma segunda e terceira portas OU (0R), 25 e 26, conforme a figura 2. A porta 25 tem uma das suas entradas ligada à saída da porta 26, cujas entradas estão ligadas à acima mencionada entrada de sinal iniciador 14 e a uma saída de sinal reiniclador 27 da unidade de armazenamento temporário 6, incluída na mesma unidade processadora de dados. Cada uma das unidades processadoras de dados,
694
Ref: K/BP/EA/7736O/ /LM 4690
-10inclui um gerador ue sinal de arranque, não representado na figura 2, cuja saída está ligada através de um terminal de arranque 28, à outra entrada da porta 25, à acima mencionada saída de sinal iniciador 13, e ainda à entrada de estabelecimento de um primeiro interruptor bi-estável (flip-flop) 29, e com uma saída constituindo a atrás indicada saída de sinal identificador 15. Um segundo flip-flop 3θ, bem a sua entrada de estabelecimento ligada à saída da porta 26 e a sua saída ligada a uma segunda entrada de sinal identificador 31 na unidade de armaze namento temporário local 6. A porta 25, no seu estado activado selecciona uma instrução do terceiro tipo, que é uma instrução de arranque com o conteúdo Sl, através da qual a unidade processadora de dados inicia a execução da sequência de instruções associada, com a ajuda do dispositivo de selecção 18. Parte-se do princípio que, a sequência armazenada na memória de instruções 17 termina em conjunção com a activação da saída 32 do dispositivo de selecção, a qual está ligada às entradas de re-estabelecimento dos flip-flop*s 29 e 30.
A execução da primeira sequência é iniciada pelo gerador do sinal de arranque local. Consequentemente, um valor binário UM na saída do primeiro flip-flop 29 indica que as selecções de instruções associadas com a sequência local estão em curso, e que a sequência local é a primeira sequência. Um valor binário UM na saída do segundo flip-flop 3θ indica que as selecções de instruções associadas com a sequência local estão em curso, e que a sequência local é a segunda sequência. De acordo com o in vento, as instruções de ambas as sequências são escolhidas em pa ralelo, o que se obtém, por exemplo, através de uma transferência de sinal iniciador da saída de sinal iniciador 13 associada com a primeira sequência, para a entrada de sinal iniciador 14 associada com a segunda sequência.
As instruções seleccionadas da memória de instrução 17, são transferidas para a rede de portas 7 da unidade processadora de dados, e através dos terminais 33_3& para a unidade de armazenamento temporário 6 pertencente à unidade processadora de dados. Cada rede de portas inclui uma segunda porta E (AND) 37, para transferir, quando no seu estado activado e através de uma pri66 694
Ref: K/BP/EA/7736O/
/LM 4690
-li meira porta OU (OR) 38, o conteúdo das posições de bít 20-22 para o bus de endereços 8, a linha de sinal de escrita g e o bus de dados 10 do bus geral. A porta 37 tem a sua entrada activadora ligada à saída da quarta porta OU (OR) 39, cujas primeira e segunda entradas estão, respectivamente, ligadas às saídas das primeira e segundas portas de controlo (40 e 41). A porta de controlo 40 tem a sua primeira entrada ligada à posição de bit de escrita 21, da memória de instruções e a sua segunda entrada ligada à saída do primeiro flip-flop 29« A porta de controlo 41 tem a sua primeira entrada ligada à posição de bit de leitura 19, da memória de instruções e a sua segunda entrada inversora ligada a uma salda de sinal de categoria 42 da unidade de armazenamento temporário 6.
Será descrito mais adiante, que existe uma primeira e segunda categorias entre as instruções de leitura que são seleccio nadas durante a execução da segunda sequência; que as primeira e segunda categorias são identificadas, respectivamente, por um ZERO e um UM binários, transferidos através da referida saída de categoria 42; e que esta mesma saída envia um ZERO binário se a unidade processadora de dados associada executa a primeira sequâi cia. Consequentemente, a porta 37 é activada aquando de todas as instruções de leitura e de escrita, seleccionadas durante a execução da primeira sequência, bem como aquando de uma instrução de leitura da primeira categoria. Contudo, a porta 37 não é activada aquando de uma instrução do terceiro tipo, ou de uma instrução de escrita que é seleccionada durante a execução da segunda sequência ou, ainda, aquando de uma instrução de leitura da segunda categoria.
Cada rede de portas inclui, ainda, uma terceira porta E (AND) 43 para transferir, quando no seu estado activado e através de uma segunda porta 0U (0R) 44, dados obtidos do terminal 45 na unidade de armazenamento temporário 6, os quais são processados pela unidade processadora de dados associada. A por ta 43 tem a sua entrada activadora ligada à saída de sinal de categoria 42. A porta 0U (0R) 44 tem a sua segunda entrada ligada ao bus de dados 10 do bus geral. Ao escolher-se uma instrução de segunda categoria, não são recuperados quaisquer
694
Ref: K/BP/EA/7736O/ /LM 4690
-12dados da memória principal 1, mas sim da unidade de armazenamento temporário 6.
Finalmente, cada rede de portas 7 inclui uma quarta porta E (AND) 46 para transferir, quando no seu estado activado, da dos e endereços bem como sinais de escrita, dos terminais de saída 4$, 47 e 40 da unidade de armazenamento temporário 6 associada com a mesma unidade processadora de dados, para o bus geral 3· A activação da porta 46 será descrita em conjunção com a descrição da unidade de armazenamento temporário.
A figura 3 representa uma unidade de armazenamento temporá rio que inclui uma memória auxiliar 49. Esta útlima possui colunas para armazenar temporariamente, dados e endereços de leitura e de escrita, transferidos através dos terminais 33-36, sen do as colunas seleccionadas para escrita, leitura ou limpeza com a ajuda de um dispositivo de exploração 5θ· Será descrito mais adiante como é que é limpa a memória auxiliar quando a sequência de instruções associada é, finalmente, executada. 0 flanco anterior do impulso de exploração enviado pela quinta porta OU (OR) 51 leva o dispositivo de exploração a zero. 0 acesso às colunas da memória auxiliar é obtido pelos flancos anteriores dos impulsos em degrau que são gerados pelo gerador de impulsos em degrau $2 e transferidos, através de uma porta E (AND) 53 activada com um sinal em degrau, para o terminal 54 do dispositivo de exploração. Os impulsos em degrau são também enviados para um terminal activador de leitura 55, de onde resulta que as colunas são lidas uma de cada vez.
De acordo com a figura 2, a unidade de armazenamento temporário inclui uma primeira porta NÃO OU lógico (NOR) 56, com as suas entradas adaptadas para receber as marcações de escrita e de leitura, armazenadas temporariamente nas posições de bit de escrita 57, θ nas posições de bit de leitura 58, da memória auxiliar, e com a sua saída inversora ligada, através de uma porta OU (OR) de paragem 59, a uma entrada inversora da porta E (AND) em degrau 53 e às primeiras entradas da terceira e quarta portas E (AND) de controlo, 6θ e 61, cujas saídas estão ligadas à porta OU (OR) 51· A porta de controlo 60 tem a sua segunda entrada ligada a uma quinta porta E (AND) de controlo
694
Ref: K/BP/EA/773Ú0/ /LM 4Ó90
-1362, cuja primeira entrada está ligada à, acima mencionada, entrada de sinal identificador 31» ® cuja segunda entrada está li gada à saída da acima referida primeira porta OU (OR) 23, através de um priemiro terminal de controlo 63.
Consequentemente, os impulsos de exploração são apenas gera dos na unidade de armazenamento temporário incluída na unidade processadora de dados que executa a segunda sequência. Uma ope ração de exploração é desencadeada aquando da selecção de uma instrução de leitura ou de escrita. Uma paragem no gerador do sinal em degrau é obtida quando é lida uma coluna vazia, i.e., uma coluna que não tem marcação de escrita nem de leitura. Uma condição para que se inicie a exploração é a de que o referido gerador de sinal em degrau tenha sido parado.
A primeira porta NÃO OU (NOR) $6 está ligada, através de uma porta OU (OR) de escrita 64, a uma entrada activadora de escrita 65 do dispositivo de exploração. Assume-se que uma ins trução de escrita com endereço associado A3 ® os dados D3/1, bem como uma instrução de leitura com endereço associado A4, constituem a primeira e segunda instruções da segunda sequência dirigidas para a memória principal; estas instruções ficam armazenadas temporariamente, do modo descrito, na primeira e segunda colunas da memória auxiliar, tendo estas colunas posições de bit 57 e 58, as quais foram levadas a zero antes do respecti vo armazenamento.
A porta de controlo 61 tem a sua segunda entrada ligada a uma sexta porta E (AND) de controlo 66, com a sua primeira en trada ligada à acima referida entrada identificadora 16, e a segunda, ligada à linha 9 do sinal de escrita do bus geral, através do primeiro terminal do bus 67. Uma operação de exploração é, assim, igualmente ordenada para a unidade de armaze namento temporário da segunda sequência, aquando da selecção de uma instrução de escrita associada com a primeira sequência. A frequência temporal do gerador de impulsos em degrau 52 é tida como suficientemente alta em relação à velocidade de selecção de instruções, de modo a que possam ser realizadas todas as ope rações de exploração desencadeadas através das portas de contro lo 62 e 66.
694
Ref: K/BP/EA/7736O/ /LM 4690
-14A unidade de armazenamento temporário inclui um primeiro circuito de comparação 68, cuja saída é activada quando aí se verifique coincidência entre o endereço obtido através do terminal 36 da memória de instruções 17 e um dos endereços lidos nas posições de bit de endereço 69 da memória auxiliar, durante uma operação de exploração. Uma sétima porta E (AND) de controlo 70 tem a sua saída ligada a uma porta OU (OR) de paragem 59, a sua primeira entrada ligada à saída do primeiro circuito de comparação 68 e a sua segunda entrada disposta para a recepção de marcações de escrita armazenadas temporariamente nas posições de bit de escrita 57 da memória auxiliar. Verifica-se, deste modo, que, a operação de exploração é parada se um endere ço de escrita ou de leitura, seleccionados da memória de instru ções, coincidir com um endereço de escrita armazenado temporariamente .
A porta OU (OR) de escrita 64 tem a sua segunda entrada ligada à saída de uma oitava porta E (AND) de controlo 71, cu ja primeira entrada está ligada ao primeiro circuito de compara ção, e as suas segunda e terceira entradas, respectivamente, re cebendo as marcações de escrita armazenadas temporariamente nas posições de bit de escrita 57 da memória auxiliar e a marcação de escrita seleccionada através do terminal 34 da memória de instruções 17. Se o endereço de escrita, por exemplo A3, selec cionado da memória de instruções, coincidir com o endereço de escrita armazenado temporariamente, a coluna da memória auxiliar· onde foi interrompida a exploração devido ao endereço de escrita seleccionado, é actualizada de modo que, por exemplo, a primeira coluna da memória auxiliar armazena temporariamente os dados D3/2 nas posições de bit de dados 72 da memória auxiliar, após a actualização.
A porta de controlo 70 tem a sua saída ligada a uma entrada da nona porta E (AND) de controlo 73, a qual tem a sua segunda entrada disposta para a recepção da marcação de leitura seleccionada através do terminal 33 da memória de instruções 17, constituindo a saída da referida porta 73 a acima referida saída de sinal de categoria 42, a qual transferiu consequentemente um ZERO binário para as acimas referidas portas de controlo 41 e
694
Ref: K/BP/EA/7736O/ /LM 4690
-1542, em conjunção com o armazenamento temporário do endereço A4 na segunda coluna da memória auxiliar. Parte-se do princípio de que, a selecção da instrução de leitura com endereço associa do A4, é repetida uma vez depois da selecção de um número de instruções (não representado na figura 3) com endereços diferen tes A3 e A4. Verifica-se que, a selecção repetida pela primeira vez não resulta num UM binário na saída de sinal de categoria 42; verifica-se igualmente uma interrupção da exploração de vido à coincidência de endereços determinada pelo primeiro circuito de comparação 68, de modo que, a instrução de leitura, re petida uma primeira vez, é armazenada temporariamente uma segun da vez numa coluna onde as posições de bit 57 e 5θ foram, previaraente, levadas a ZERO. As instruções de leitura da segunda sequência com os endereços associados Ax, são chamadas instruções de primeira categoria se forem seleccionadas antes que o mesmo endereço Ax esteja presente na segunda sequência, em conjunção com a selecção da instrução de escrita. A saída 42 levada a ZERO identifica uma instrução de primeira categoria.
Assume-se que, uma instrução de escrita com endereço associado A4 e dados D4, é seleccionada após selecção da atrás refe rida instrução de leitura repetida pela primeira vez, e após a selecção de um número de instruções (não ilustrada na figura 3) com endereços diferentes de A3 e A4. Verifica-se então que, es ta instrução de escrita é armazenada temporariamente numa coluna previamente desocupada. Mais se assume que, a selecção da instrução de leitura com endereço associado A4, é repetida uma segunda vez depois da selecção da referida instrução de escrita com o endereço A4. Obtém-se uma paragem da exploração em conjun ção com a leitura da instrução de escrita armazenada temporariamente com o endereço A4. Não se realiza qualquer actualização, i.e. a marcação de escrita na posição de bit 57 θ retida, não se realiza nenhuma marcação de leitura na posição de bit 58, e um UM binário é obtido na saída de sinal de categoria 42, pelo que a instrução de leitura com endereço associado A4, repetida uma segunda vez, é identificada como uma instrução de segunda categoria. Consequentemente, a memória auxiliar não contém qualquer instrução de segunda categoria, da selecção da qual resulta que,
694
Ref: K/BP/EA/7736O/ /LM 4690 contudo, a porta de controlo 41 representada na figura 2 interrompe a transferência de instruções para o bus geral 3 ® que os dados, por exemplo D4, que são lidos nas posições de bit de dados 72 da memória auxiliar, em conjunção com a interrupção da exploração associada, são transferidos para a unidade processadora de dados, através das portas 43 e 44 representadas na figu ra 2.
A unidade de armazenamento temporário, inclui um segundo circuito de comparação 74, cuja saída é activada quando da coin cidência entre o endereço obtido do bus de endereços 8 através dum segundo terminal 75 do bus e um dos endereços de leitura lidos das posições de bit de endereço 69 da memória auxiliar, durante uma operação de exploração. 0 segundo circuito de comparação está ligado à primeira entrada de uma décima porta E (AND) de controlo 76, cuja segunda entrada está ligada à atrás referida porta de controlo 66; a terceira entrada recebe as marcações de escrita temporariamente armazenadas nas posições de bit 58 da memória auxiliar e a sua saída constitui a acima mencionada saída de sinal reiniciador 27 e está ligada a uma porta OU (CR) de limpeza 77· A porta OU (OR) 26 representada na figura 2 recebe o sinal de reinicio de uma porta de controlo activada, 76. 0 dispositivo de exploração 50 recebe um impulso desencadeador de limpeza de uma porta OU (OR) de limpeza 77 activada, devido ao qual toda a informação de endereços armazenados temporariamente na memória auxiliar, é imediatamente cancelada.
Verifica-se que, a limpeza da memória auxiliar e o reinicio da execução da segunda sequência são realizados se for encontrada uma instrução de leitura de primeira categoria, temporariamente armazenada, em que o endereço associado desta instrução coincida com o endereço associado com uma instrução de escrita que é seleccionada durante a execução da primeira sequência. A limpeza é necessária, já que, a unidade processadora de dados associada recebeu informação da memória principal, devido à ins trução de primeira categoria encontrada, informação que a memória não teria recebido se se tivesse prestado atenção à ordem predeterminada, i.e. se as instruções da primeira e segunda se
694
Ref: K/BP/EA/773ÓO/ /LM 4690
quências não tivessem sido seleccionadas em paralelo.
A unidade de armazenamento temporário inclui uma segunda porta NÃO OU (NOR) /8 com as entradas ligadas às acima referidas entradas de sinal identificador 16 e 31 e que tem a sua saída inversora ligada à porta OU (OR) 51· Quando termina a selecção da primeira e da segunda sequências, é desencadeada uma operação de exploração, se bem que esta exploração não dê resul tados na unidade de armazenamento temporário incluída na unidade processadora de dados que executou a primeira sequência. A saída da porta NÃO OU (NOR) 78 está ligada à primeira entrada da décima primeira porta E (AND) de controlo 79, cuja segunda entrada recebe as marcações de escrita temporariamente armazenadas nas posições de bit 57 da memória auxiliar, estando a saída des ta última porta 79 ligada à acima referida porta 46, através dum segundo terminal de controlo 80. Resulta que, com a operação de exploração iniciada pela porta NÃO OU (NOR) 78, se obtém que todas as instruções de escrita temporariamente armazenadas na memória auxiliar são transferidas para a memória principal 1, através dos terminais 45, 47 e 48, das portas 4ó e 38 e do bus geral 3.
Finalmente, conforme a figura 3» θ- unidade de armazenamento temporário tem uma décima segunda porta E (AND) de controlo 81, com as suas entradas ligadas às portas NÃO OU (NOR) 56 e 78 e com a sua saída ligada a uma porta OU (OR) de limpeza 77· Obtém-se um impulso desencadeador de limpeza quando é terminada a operação de exploração iniciada pela porta NÃO OU (NOR) 78.
Como efeito global, verifica-se que, com a ajuda da unidade de armazenamento temporário, a primeira e segunda sequências são executadas sem erros, segundo a ordem previamente determinada, apesar de, inicialmente, ter sido ordenada a execução de ambas as sequências em paralelo.

Claims (2)

  1. ~ REIVINDICAÇÕES lê. - Processo para executar duas sequências de instruções segundo uma ordem predeterminada, incluindo a selecção de instruções de leitura, cada uma delas contendo o seu endereço de leitura para recuperar os dados armazenados em UTia de uma plura lidade de posições de memória principal, acessíveis pelos seus respectivas endereços, bem como a selecção de instruções de escrita, cada uma delas contendo o seu endereço de escrita e dados para a transferência destes dados para uma posição duma memória principal, acessível pelo seu endereço de escrita, não sendo os dados usados em conjunção com a execução da sequência, designada como segunda em termos de ordem, garantidamente independentes à priori, dos dados obtidos em conjunção com a execução da sequência designada como primeira em termos de ordem, caracterizado por compreender os passos de :
    a. execução em paralelo das instruções em ambas as sequências sem preocupação de ordem,
    b. impedimento da transferência de dados para posições da memória principal, durante a execução da primeira sequência, se estes dados tiverem sido obtidos através duma instrução de escri ta da segunda sequência,
    c. armazenamento temporário de um endereço de escrita e dados, obtidos através duma instrução de escrita seleccionada durante a execução da segunda sequência,
    d. armazenamento temporário de um endereço obtido através duma instrução de leitura seleccionada durante a execução da se gunda sequência, se este endereço não tiver sido anteriormente seleccionado em conjunção com a execução de instruções de escri ta da segunda sequência,
    e. realização de uma primeira comparação entre um endereço de leitura seleccionado durante a execução da segunda sequência e 0 endereço de escrita temporariamente armazenado,
    f. impedimento, verificada a coincidência determinada pela primeira comparação acabada de referir, entre um endereço de lei
    66 694
    Ref: K/BP/EA/7736O/ /LM 4690 tura e um de escrita, da recuperação de dados da posição da memória principal acessível através deste endereço de leitura, e ler em seu lugar a informação armazenada temporariamente associada com este endereço de escrita,
    g. realização de uma segunda comparação entre o endereço de leitura temporariamente armazenado, e cada um dos endereços de escrita obtiao através da execução de instruções de escrita da primeira sequência,
    h. reiniciação da execução da segunda sequência ao ser detectada uma coir.cicência de endereços pela referida segunda comparação, e
    i. transferência, quando tiver terminado a execução da primeira sequência, da informação armazenada temporariamente com a ajuda do correspondente endereço de escrita armazenado têmpora riamente, para a posição de memória principal acessível por este mesmo endereço de escrita.
  2. 2e. - Dispositivo para executar, de acordo com a reivindicação 1, duas sequências de instruções segundo uma ordem predeterminada, incluindo um primeiro circuito de arranque (13, 25, 28) para iniciar a execução da sequência que é a primeira em termos de ordem, e um primeiro e segundo dispositivos memorizadores de instruções (4), respectivamente, para armazenarem as sequências identificadas como primeira e segunda em termos de ordem, respectivamente, e para seleccionar as instruções armaze nadas uma de cada vez, estando estes dispositivos memcrizadores de instruções ligados através de um bus (3), a uma unidade de memória principal (i, 11), cujas posições de memória são acessíveis para a leitura/escrita de dados com a ajuda de endereços de leitura/escrita, seleccicnados através das posições de bit de endereço de leitura/escrita (19, 20, 21), dos dispositivos memorizadores de instruções, sendo os dados usados em conjunção com a execução da segunda sequência, não garantidamente independentes, à priori, dos dados obtidos em conjunção com a execução da primeira sequência, caracterizado por o dispositivo incluir:
    a. um segundo circuito de arranque (14, 25, 26) para arran que da segunda sequência com a sua primeira entrada activadora
    66 6/4
    Ref: K/BP/EA/7736O/ /LM 4690 (14) ligada ao referido primeiro circuito de arranque,
    b. um primeiro circuito de transferência de instruções (37, 38, 39, 41), em cujos lados de entrada e de saída são ligados, respectivamente, o segundo dispositivo memorizador de instruções e o bus, e que é desactivado durante a execução da primeira sequência através da selecção de uma instrução de escrita incluída na segunda sequência,
    c. uma unidade de memória auxiliar (49, 50), com os seus terminais de entrada (33, 3&) ligados ao segundo dispositivo memcrizador de instruções e que inclui posições de bit de dados (72), e posições de bit de endereço de escrita (57, 69), para armazenamento temporário de um endereço de escrita e dados obtidos em consequência duma instrução de escrita seleccicnada durante a execução da segunda sequência e posições de bit de endereços de leitura (58, 69) para armazenar temporariamente um endereço obtido como um endereço de leitura em consequência duma instrução de leitura selecclonada durante a execução da segunda sequência, se este endereço não tiver sido previamente seleccionado em conjunção com a execução das instruções de escrita da segunda sequência.
    d. um circuito de comparação comutador (68, 70, 73) cujos primeiros terminais de comparação estão ligados às posições de bit de endereço de leitura (19, 20) do segundo dispositivo memorizador de instruções, e cujos segundos terminais de comparação estão ligados às referidas posições de bit de endereço de escrita (57, 69) da unidade auxiliar de memória, e a saída enviando do dito circuito de comparação comutador um primeiro e um segundo, sinais de comutação lógica, respectivamente, conforme não exista ou exista coincidência, entre os endereços recebidos nos seus terminais de comparação comutadores,
    e. um comutador de dados (37, 38, 39, 41, 44) com a sua primeira entrada de dados ligada ao bus e a sua segunda entrada de dados ligada às posições de bit de dados (72) da unidade de memória auxiliar e com as suas entradas de controlo ligadas à saida do circuito de comparação comutador, para a recuperação em consequência do referido primeiro estado de sinal de comutação,
    66 694
    Ref: K/BP/EA/7736O/ /LM
    -21de posição de memória principal, que é acessível com a endereço de leitura recebido pelo circuito de compara, do referi memória auxiliar, de recebido pelo circui4690 de dados ajuda do ção comutador, e para a recuperação, em consequência do segundo estado de sinal de comutação da dados associados com o endereço de escrita to de comparação comutador.
    f. circuito comparador (66, 74, 76), tendo primeiros terminais de comparação (16, 75) para receberem os endereços de escrita seleccionados durante a execução da primeira sequência, e os segundos terminais de comparação ligados às referidas posições de bit de endereços de leitura ($8, 69) da unidade de memória auxiliar e com a sua saída (27) ligada à segunda entrada activadora do referido segundo circuito arrancador, vada ao haver coincidência entre os endereços minais do circuito de comparação, e cuja saída é actirecebidos nos terg. um segundo circuito de transferência
    46, 78, 79) em cujos lados de entrada e de saida são ligados respectivamente, as posições de bit de dados (72) bit de endereço de escrita (57, 69) da unidade de liar, e o bus (3) e que é activado quando termina primeira sequência.
    de instruções (38, e posições de memória auxia execução da
PT85811A 1986-10-03 1987-09-28 Processo e dispositivo para executar duas sequencias de instrucoes segundo uma ordem predeterminada PT85811B (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE8604223A SE454921B (sv) 1986-10-03 1986-10-03 Sett och anordning for att i en pa forhand avgjord ordningsfoljd exekvera tva instuktionssekvenser

Publications (2)

Publication Number Publication Date
PT85811A PT85811A (pt) 1988-11-30
PT85811B true PT85811B (pt) 1993-08-31

Family

ID=20365824

Family Applications (1)

Application Number Title Priority Date Filing Date
PT85811A PT85811B (pt) 1986-10-03 1987-09-28 Processo e dispositivo para executar duas sequencias de instrucoes segundo uma ordem predeterminada

Country Status (20)

Country Link
US (1) US4956770A (pt)
EP (1) EP0285634B1 (pt)
JP (1) JPH01500935A (pt)
KR (1) KR920006769B1 (pt)
CN (2) CN87106625A (pt)
AU (1) AU596234B2 (pt)
BR (1) BR8707473A (pt)
CA (1) CA1289670C (pt)
DE (1) DE3777632D1 (pt)
DK (1) DK168135B1 (pt)
ES (1) ES2005370A6 (pt)
FI (1) FI93907C (pt)
GR (1) GR871511B (pt)
IE (2) IE61307B1 (pt)
MA (1) MA21073A1 (pt)
MX (1) MX159991A (pt)
PT (1) PT85811B (pt)
SE (1) SE454921B (pt)
TN (1) TNSN87108A1 (pt)
WO (1) WO1988002513A1 (pt)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5075844A (en) * 1989-05-24 1991-12-24 Tandem Computers Incorporated Paired instruction processor precise exception handling mechanism
US5163139A (en) * 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
US5420990A (en) * 1993-06-17 1995-05-30 Digital Equipment Corporation Mechanism for enforcing the correct order of instruction execution
JPH07334372A (ja) * 1993-12-24 1995-12-22 Seiko Epson Corp エミュレートシステム及びエミュレート方法
SE9901146D0 (sv) 1998-11-16 1999-03-29 Ericsson Telefon Ab L M A processing system and method
SE9901145D0 (sv) 1998-11-16 1999-03-29 Ericsson Telefon Ab L M A processing system and method
US8738822B2 (en) * 2005-05-03 2014-05-27 Flexera Software Llc System and method for controlling operation of a component on a computer system
JP5350677B2 (ja) * 2008-05-19 2013-11-27 株式会社東芝 バス信号制御回路、及び、バス信号制御回路を備えた信号処理回路
JP2021015384A (ja) * 2019-07-10 2021-02-12 富士通株式会社 情報処理回路、情報処理装置、情報処理方法及び情報処理プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1218656A (en) * 1968-03-27 1971-01-06 Int Computers Ltd Improvements in or relating to computer system
US3787673A (en) * 1972-04-28 1974-01-22 Texas Instruments Inc Pipelined high speed arithmetic unit
GB1441458A (en) * 1972-06-28 1976-06-30 Texas Instruments Inc Stored programme data processing for parallel processing of programme segment
IT991096B (it) * 1973-07-10 1975-07-30 Honeywell Inf Systems Calcolatore elettronico con reti funzionali indipendenti per l esecuzione simultanea di opera zioni diverse sugli stessi dati
SE378690B (pt) * 1973-12-13 1975-09-08 Ellemtel Utvecklings Ab
SE387763B (sv) * 1975-10-23 1976-09-13 Ellemtel Utvecklings Ab Anordning vid ett datorminne for att mojliggora en successiv forflyttning under drift av ett ledigt minnesfelt
JPS57162165A (en) * 1981-03-30 1982-10-05 Fanuc Ltd Re-editing system for storage area
US4466061A (en) * 1982-06-08 1984-08-14 Burroughs Corporation Concurrent processing elements for using dependency free code
JPS5932045A (ja) * 1982-08-16 1984-02-21 Hitachi Ltd 情報処理装置
JPS60146350A (ja) * 1984-01-11 1985-08-02 Hitachi Ltd 通信制御装置
US4720779A (en) * 1984-06-28 1988-01-19 Burroughs Corporation Stored logic program scanner for a data processor having internal plural data and instruction streams
SE454920B (sv) * 1986-10-03 1988-06-06 Ellemtel Utvecklings Ab Sett och anordning for att i en pa forhand avgjord ordningsfoljd exekvera tva instruktionssekvenser medelst separatminnen

Also Published As

Publication number Publication date
ES2005370A6 (es) 1989-03-01
IE61306B1 (en) 1994-10-19
IE872506L (en) 1988-04-03
FI882468A0 (fi) 1988-05-25
DK300788D0 (da) 1988-06-02
BR8707473A (pt) 1988-09-13
AU596234B2 (en) 1990-04-26
IE61307B1 (en) 1994-10-19
FI93907C (sv) 1995-06-12
WO1988002513A1 (en) 1988-04-07
MA21073A1 (fr) 1988-07-01
AU8036587A (en) 1988-04-21
EP0285634B1 (en) 1992-03-18
FI882468A (fi) 1988-05-25
CN87106625A (zh) 1988-04-13
IE872505L (en) 1988-04-03
SE8604223L (sv) 1988-04-04
JPH01500935A (ja) 1989-03-30
DK300788A (da) 1988-06-02
FI93907B (sv) 1995-02-28
CN87106765A (zh) 1988-04-20
SE8604223D0 (sv) 1986-10-03
GR871511B (en) 1987-10-01
DE3777632D1 (de) 1992-04-23
TNSN87108A1 (fr) 1990-01-01
US4956770A (en) 1990-09-11
KR920006769B1 (ko) 1992-08-17
KR880701913A (ko) 1988-11-07
PT85811A (pt) 1988-11-30
CA1289670C (en) 1991-09-24
DK168135B1 (da) 1994-02-14
EP0285634A1 (en) 1988-10-12
MX159991A (es) 1989-10-23
SE454921B (sv) 1988-06-06

Similar Documents

Publication Publication Date Title
EP0212393A2 (en) System for managing a plurality of shared interrupt handlers in a linked-list data structures
US20010042225A1 (en) Computer system implementing fault detection and isolation using unique identification codes stored in non-volatile memory
GB2121218A (en) Shared resource locking apparatus
KR100282015B1 (ko) 데이타 처리 장치
US6012127A (en) Multiprocessor computing apparatus with optional coherency directory
EP0127640A4 (en) DATA PROCESSOR WITH VIRTUAL MEMORY.
PT85811B (pt) Processo e dispositivo para executar duas sequencias de instrucoes segundo uma ordem predeterminada
GB2216306A (en) Load and synchronize computer architecture and process
JPS61182160A (ja) デ−タ処理装置
JPH0212363A (ja) コンピユータ・システムの初期設定方法及びその装置
EP0287600B1 (en) Method and device to execute two instruction sequences in an order determined in advance
KR100817947B1 (ko) 인터럽트 서비스 방법 및 프로세서
JPS6319058A (ja) メモリ装置
CA1262777A (en) Isolated idle loop for cartridge insertion/removal
US6253272B1 (en) Execution suspension and resumption in multi-tasking host adapters
US5201052A (en) System for transferring first and second ring information from program status word register and store buffer
JP3239935B2 (ja) 密結合マルチプロセッサシステムの制御方法、密結合マルチプロセッサシステム及びその記録媒体
KR0176096B1 (ko) 동기 버스간의 고속 데이터 전송장치
JPH0341538A (ja) 主記憶装置
JPS6161419B2 (pt)
KR880000995B1 (ko) 기억장치
KR20010028615A (ko) 교환기의 이중화 장치
JPS5842546B2 (ja) ストア制御方式
JPS59158428A (ja) サブチヤネル制御方式
JPS63187349A (ja) 記憶装置

Legal Events

Date Code Title Description
FG3A Patent granted, date of granting

Effective date: 19930202

MM3A Annulment or lapse

Free format text: LAPSE DUE TO NON-PAYMENT OF FEES

Effective date: 19940831