PT96482B - Processador de endereco para um processador de sinal - Google Patents
Processador de endereco para um processador de sinal Download PDFInfo
- Publication number
- PT96482B PT96482B PT96482A PT9648291A PT96482B PT 96482 B PT96482 B PT 96482B PT 96482 A PT96482 A PT 96482A PT 9648291 A PT9648291 A PT 9648291A PT 96482 B PT96482 B PT 96482B
- Authority
- PT
- Portugal
- Prior art keywords
- address
- mod
- buffer
- reg
- filter
- Prior art date
Links
- 239000000872 buffer Substances 0.000 claims abstract description 83
- 230000015654 memory Effects 0.000 claims abstract description 65
- 238000004364 calculation method Methods 0.000 claims abstract description 30
- 238000005070 sampling Methods 0.000 claims description 12
- 238000006073 displacement reaction Methods 0.000 abstract description 3
- 238000000034 method Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 13
- 101100301524 Drosophila melanogaster Reg-5 gene Proteins 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004088 simulation Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 241000052343 Dares Species 0.000 description 1
- 241001536374 Indicator indicator Species 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000007704 transition Effects 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
- G06F9/3552—Indexed addressing using wraparound, e.g. modulo or circular addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/065—Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/06—Indexing scheme relating to groups G06F5/06 - G06F5/16
- G06F2205/066—User-programmable number or size of buffers, i.e. number of separate buffers or their size can be allocated freely
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
- Debugging And Monitoring (AREA)
Description
MEMÕRIA DESCRITIVA presente invento refere-se a um processador de endereço para um processador de sinal, para calcular endereços numa memória de leitura/escrita contendo variáveis de estado para filtros digitais»
ANTECEDENTES DO INVENTO
Reiativamente à implementação de filtros digitais nos processadores de sinal e, onde são armazenadas as amostras de dados de entrada para os ditos filtros numa memória de leitura/ /escrita, é necessária qualquer forma de processador de endereço para escrever e ler as variáveis de estado dos ditos filtros» Estes filtros podem ser tanto recursivos (IIR) como não recursivos (FIR). Um filtro é calculado para ler as variáveis de estado da memória e calcular os dados de saída. Estes dados de saída tornam-se então dados de entrada ou variáveis de estado para o filtro seguinte e são, em consequência, escritos de novo na dita memória. Geralmente um arranjo de filtro pode compreender inúmeros filtros, os quais podem também ter frequências de amostragem diferentes.
Depois de um cálculo de um valor de filtro, todas as variáveis de estado num filtro são deslocadas de uma posição na memória. A variável de estado mais antiga é sobreposta pela variável mais antiga seguinte, e uma nova amostra é armazenada na posição de memória,que foi libertada pela operação de deslocação»
Uma desvantagem deste processo anteriormente conhecido é que a deslocação na dita memória é uma operação demorada, dado que as variáveis de estado têm de ser lidas e escritas nas novas posições de memória»
Uma outra desvantagem é que esta operação de deslocação consome também energia. Isto é importante, por exemplo, reiativamente aos processadores de sinal nos telefones accionados por bateria, onde a energia disponível é limitada.
957
LM 4859
DESCRIÇÃQ DA ARTE ANTERIOR
Um processo comum para endereçar e deslocar as variáveis de estado para um filtro digital, implementado por um processador de sinal e uma memória de leitura/escrita, é utilizar uma memória intermediária circular de 2n, onde n é um número inteiro maior do que 0- Um indicador indica a posição de memória da variável de estado mais antiga, que é o endereço de arquivo da memória intermediária circular. Depois de ler a variável de estado mais antiga uma nova amostra é escrita na posição de memória indicada, sendo a dita variável de estado mais antiga sobreposta. Se o indicador é agora mudado para apontar, para a variável de estado mais antiga seguinte, o dito indicador indicará um novo endereço duplo, fi variável de estado mais antiga antecedente é agora a mais antiga, e o resultado deste procedimento é equivalente a deslocar todas as variáveis numa memória intermediária circular, de uma posição de memória sem movê-las fisicamente, fipenas o indicador foi actualizado para indicar o novo endereço de arquivo. 0 processo é,em consequência, chamado de deslocação virtual. Quando o dito indicador tiver alcançado a primeira posição de memória da memória intermediária circular ele apontará, depois da deslocação seguinte, para a última posição de memória. Assim, o endereçamento da memória intermediária pode ser denominado módulo de endereçamento 2n.
Contudo, uma desvantagem importante do processo anteriormente conhecido é que a memória intermediária pode apenas ter a dimensão de 2n, de modo a que os filtros têm de ter a dimensão de 2n. Isto torna o processo apenas apropriado para certos filtros especiais.
Um outro processo anteriormente conhecido utiliza uma memória intermediária,com qualquer tamanho,e utiliza um indicador que é deslocado para baixo,do fim para o princípio da memória intermediária, durante o cálculo do filtro. Quando o indicador tiver alcançado o princípio da memória intermediária, o dito indicador é mais uma vez carregado pelo endereço do fim da memória intermediária, de modo a que o procedimento possa ser repetido.
957
LM 4859
Uma desvantagem deste processo anteriormente conhecido é que não é possível num tempo arbitrário endereçar uma variável de estado arbitrária num filtro arbitrário» 0 processo funcionará apenas se os filtros forem calculados em sequência e em conformidade com o acima indicado» Isto torna o processo não utilizável, como um ponto de partida para um processador de endereço geral.
OBJECTIVO DO INVENTO
Um objectivo do presente invento é proporcionar um processador de endereço do tipo acima mencionado, processador que é capaz de endereçar e deslocar virtualmente as variáveis de estado de, pelo menos, uma memória intermediária circular, para, pelo menos, dois filtros digitais armazenados um após outro na dita memória intermediária, tendo os ditos filtros um número arbitrário de elementos de retardo ou um tamanho arbitrário, mas a mesma frequência de amostragem»
SUMARIO DO INVENTO
De acordo com o invento o objectivo acima indicado é alcançado com um processador de endereço com a configuração da reivindicação 1»
BREVE DESCRIÇÃO DOS DESENHOS invento será descrito em detalhe adiante com referência aos desenhos anexos, nos quais:
a figura 1 a figura 2 a figura 3 a figura 4 mostra a divisão da memória de dados em ligação com o presente invento;
mostra a divisão de uma memória intermediária em ligação com o presente invento;
mostra um diagrama de filtro para os filtros da memória intermediária da figura 2;
representa a localização dos filtros e o endereço de arquivo da memória intermediária da figura 2,
957
LM 4859 durante passos de cálculo consecutivos <C—
-5a figura 5 a figura 6 a figura mostra uma concretização preferida de um processador de endereço de acordo com o presente invento;
mostra um diagrama de tempo de cálculo para o processador de endereço de acordo com a figura 5; e mostra um diagrama de tempo de sinal para o processador de endereço da figura 5 para os três filtros A, B e C com 2, 1 e N derivações, respectivamente, onde N e um número inteiro positivo arbitrário»
8ʧ£BIÇ„ãQ.....DAS.....CONCRETIZAÇÕES PREFERIDAS
A figura 1 mostra a organização da memória para a parte da RAM que contém as variáveis de estado, para filtros diferentes,. Neste caso é assumido que a memória compreende filtros para oito canais CH 0 - CH 7» Cada canal contém memórias intermediárias BUFE 0 - BUFF 2» 0 número de memórias intermediárias é arbitrário, mas cada canal tem o mesmo número de memórias intermediárias, com tamanhos correspondentes» As memórias intermediárias contêm, por sua vez, filtros FILTRO 0 - FILTRO 2» As memórias intermediárias têm normalmente tamanhos diferentes, mas os filtros em cada memória intermediária correspondem à mesma frequência de amostragem» N.o presente invento, pelo menos, uma memória intermediária contém dois ou mais filtros» Os tamanhos de memória intermediária dependem da soma dos tamanhos de filtro; de facto o tamanho de memória intermediária é formado pela soma dc:« número de elementos de retardo dos filtros incluídos mais 1»
A figura 1 mostra uma memória de dados dividida em oito canais CH 0
CH invento não está limitado a oito canais» em vez disso é possível um número de canais arbitrário» Além do mais, a figura 1 indica uma memória de dados que contém 512 células de memória» Contudo, este número pode também variar» A
957
LM 4859 ~ó~
figura 2 mostra o conteúdo de uma memória intermediária em detalhe. No exemplo, uma memória intermediária compreende três filtros com os endereços de início do filtro, filtro_endereço (0), filtro_endereço (1), filtro_endereço (2). 0 endereço de início absoluto é denominado módulo_início. As variáveis de estado no primeiro filtro são denominadas X(n), X(n-l), X(n-2), X(n-3). Aqui X(n) indica a amostra mais atrasada, X(n-l) a amostra mais atrasada seguinte, etc..
A fim de facilitar a descrição que se segue, é assumido inicialmente que os três filtros na memória intermediária da figura 2 são não recursivos.
Neste caso as variáveis de estado são extraídas uma após outra da memória durante o cálculo do FILTRO 0, a partir da variável de estado mais antiga X(n~3), e multiplicada pelos coeficientes de filtro correspondentes, os quais são extraídos da RAM ou ROM. 0 filtro é calculado somando estas variáveis de estado multiplicadas. Quando o filtro tiver sido calculado, o valor obtido Y(n) é escrito na célula de memória para a variável de estado mais antiga X(n~3)- Na figura 2 isto foi indicado deixando a variável de estado ou a amostra X(n-3) compartilhar a célula de memória com o sinal de saida do filtro Y(n). Os valores de. filtro calculados Y(n), Y(n-l) ... formam deste modo sinais de entrada para o FILTRO 1. 0 FILTRO 1 é calculado de uma maneira correspondente, e depois do cálculo o seu valor é escrito na célula de memória para a variável de estado mais antiga Y(n-2), como o sinal de entrada para o FILTRO 2, Este procedimento, em que o sinal de saída de um filtro forma o sinal de entrada para o filtro seguinte é possível, devido ao facto dos filtros da memória intermediária corresponderem à mesma frequência de amostragem.
As figuras 3 e 4 representam, além do mais, o processo de cálculo e, em particular, também as complicações que aparecem relativamente aos filtros recursivos.
A figura 3 mostra um diagrama filtro mais geral, para os
C·.-·z-Z
957
LM 4859 //1 ffl ~7~ filtros da memória intermediária da figura 2» Como anteriormente, o primeiro filtro, FILTRO 0, é um filtro não recursivo que contém apenas uma parte transversal. Contudo, o segundo filtro, FILTRO 1, contém uma parte esquerda recursiva e uma parte direita transversal. 0 terceiro filtro, FILTRO 2, contém apenas uma parte recursiva e nenhuma parte transversal.
Na figura 3 os elementos de retardo foram, indicados por T„ Como pode ser visto a partir da figura 2, o FILTRO 0 contém três elementos de retardo T e quatro coeficientes a0 ... a^» 0 FILTRO 1 contém dois elementos de retardo T e dois coeficientes b-j_, b^ na parte recursiva e três coeficientes cQ ... Cg na parte transversal. 0 FILTRO 2 contém dois elementos de retardo T e dois coeficientes dj , Ó2- 0® acordo com a regra de cálculo acima indicada a memória intermediária tem um tamanho de 3 + 2 + 2 + 1, isto é 8.
A figura 4 mostra uma sequência de cálculo para os três filtros da figura 3.
É essencial notar duas coisas na figura 4»
Em primeiro lugar, os valores das variáveis de estado
X(n) Y(n) ...... W(n) ... ficam sempre ainda na célula de memória para a qual foram reservados. Para cada nova figura (a)~ ~(h) n é aumentado de 1, isto é X(n) será denominado X(n-l), etc,. Os valores das variáveis de estado, contudo, permanecem ainda na célula de memória original. As variáveis de estado mais antigas são então sobrepostas pelos novos valores da variável de estado, quando já não forem necessárias» Assim, não é necessário mover as variáveis de estado»
Em segundo lugar, o endereço de arquivo, mod.mi nd içado r, da memória intermediária é continuamente actualizado. Este, indicador aponta sempre para o endereço de memória em que a memória intermediária circular arquiva, neste caso a fronteira entre o FILTRO 2 © o FILTRO 0. 0 Indicador mod_indicador forma uma referênoia-zero com a qual é possível obter um endereço
71 957 LM 4859 |
absoluto correcto, para uma variável de estado corrente, a qual será representada em detalhe abaixo»
Para o cálculo do endereço para uma certa variável de estado são utilizadas as seguintes variáveis:
mod_início = | o endereço de início absoluto da memória intermediária; |
dados_endereço = | o deslocamento da variável de estado escolhida reiativamente ao endereço de início da memória intermediária, mod_início; |
escrita_endereço = | o endereço de escrita escolhido reiativamente ao endereço de início da memória intermediária, mod_início; |
mod_número = | tamanho da memória intermediária, pode ser escolhido arbitrariamente; |
mod_indicador = | o endereço de arquivo corrente da memória intermediária; |
endereço_relativo = | o endereço calculado reiativamente ao endereço de início da memória intermediária, mod^início; |
endereço dm = | o endereço de memória absoluto final» |
Durante o cálculo do endereço de uma variável de estado a soma dados_endereço + mod_indicador é calculada primeiro, Depois disso, é ensaiada sempre que esta soma é menor do que mod_número» Se é este o caso, o endereço_relativo é ajustado para igualar a soma obtida, isto é endereço_relativo = dados_endereço + mod_indicador
Contudo, se a condição não é cumprida, isto é a soma é maior
957
LM 4859
do que ou igual a mod__número, o endereço_j*elativo é ajustado a endereço_relatívo = dados_endereço + mod_indicador - mod_número
Em ambos os casos é obtido o deslocamento da posição da memória visada relativamente ao endereço de início da memória intermediária, mod_início. 0 endereço de memória de dados absoluto final, endereço dm, é obtido adicionando mod_início ao resultado obtido, isto é endereço dm = endereço_relativo + mod_início
Inicialmente o mod_indicador é ajustado a mod_indicador = mod_número - 1 para que endereço_relativo = endereço_dados - 1
Um endereço de leitura é calculado do mesmo modo, sendo a diferença de dados_endereço substituída por escrita_endereço.
cálculo do FILTRO 0, do FILTRO 1 e do FILTRO 2 é executado da seguinte maneira.
1) 0 sinal de entrada é escrito na posição X(n).
2) FILTRO 0 é calculado da seguinte maneira. Primeiro o dados_endereço é ajustado ao filtro_endereço (0) + indice, em que índice = 3. Com este valor para o dados_endereço o endereço para X(n-3) é calculado de acordo com o acima indicado. X(n—3) é extraído da célula da memória que é apontada e multiplicado pelo coeficiente a^- Depois disso, o índice e consequentemente também o endereço_dados é decrementado de 1. X(rt-2) é extraído e multiplicado por 32- 0 produto é adicionado ao produto anteriormente obtido. De um modo correspondente o índice é reduzido por passos sempre para 0, para que todas as variáveis do FILTRO 0 sejam extraídas uma após outra, multiplicadas pelo coeficiente correspondente e adicionadas. Depois disso foi calculado o FILTRO 0.
3) 0 FILTRO 1 é calculado da seguinte maneira. Primeiro a 'í—ísseaBt
957
LM 4859
parte recursiva esquerda é calculada, ajustando-se o dados_endereço ao filtro_endereço (1) + índice, em que o índice = 2. Por rneio disso Y(n-2) é apontado e multiplicado por b2, depois do que o índice e consequentemente também o dados_endereço é reduzido de 1. 0 produto obtido é adicionado ao resultado obtido a partir do FILTRO 0. De modo correspondente Y(n-l) multiplicado pelo coeficiente b^, é também adicionado ao resultado anteriormente obtido. Na decrementação seguinte do índice é obtido o endereço da posição X(n-3)/Y(n). 0 resultado obtido Y(n) é agora sobreposto à variável de estado anterior X(n-3) nesta posição de memória. Agora todas as variáveis de estado Y(n), Y(n-l) e Y(n-2) para calcular a parte de escrita transversal do FILTRO 1 estão disponíveis. Este cálculo é feito do mesmo modo que o do cálculo do FILTRO 0, sendo a diferença que o filtro_endereço (1) e o índice = 2 são utilizados para calcular o dados_endereço no primeiro passo.
4) 0 FILTRO 2 é calculado da mesma maneira do que a parte recursiva do FILTRO 1, sendo a diferença que o filtro_endereço (2) é utilizado para o cálculo de dados_endereço e d^, d2 são utilizados como coeficientes. No passo inicial o índice é ajustado igual a 2. Quando o índice alcançar o valor 0, o resultado W(n) ê sobreposto ao valor Y(n-2).
Todos estes cálculos são executados no andar que é mostrado na figura 4(a). Na transição para a figura 4(b) o mod_indicador é decrementado de 1 e n é incrementado de 1, de modo que X(n) é agora chamado X(n-l), etc.. 0 valor do sinal de entrada seguinte é escrito na posição que é denominada X(n), depois do que o ciclo de cálculo acima é repetido.
Deste modo o mod_indicador é diminuído de uma unidade para cada um da figura 4(a)-(h). Quando os filtros forem calculados na figura 4(h) e o mod_indicador deva ser actualizado é executado um retorno de arquivo para a posição mostrada na figura 4(a), depois do que é repetido todo o procedimento.
A partir do acima descrito é claro que a zona de memória da
957
LM 4859
-11memória intermediária é utilizada muito eficientemente. Particularmente a memória intermediária pode ser endereçada para o módulo n, onde n é um número inteiro positivo arbitrário. Este processo tem provado ser, especialmente, vantajoso se muitos filtros curtos forem implementados.
Uma concretização preferida do processador de endereço será descrita mais abaixo com referência às figuras 5-7.
i
De acordo com a figura 5 o processador de endereço pode ser dividido logicamente em três secções diferentes. Na primeira, secção de topo, são armazenadas as constantes da memória intermediária. Na segunda, secção do meio, é executado o cálculo do endereço. Finalmente, na terceira, secção do fundo, os endereços são armazenados para terem acesso às memórias nos pontos apropriados em tempo.
Para cada frequência de amostragem, amostra_velocidade, é armazenado um indicador, mod_indicador. Na concretização preferida o processador de endereço compreende um conjunto de registadores S que contém quatro registadores para armazenar quatro valores diferentes do mod_indicador, um para cada frequência de amostragem3e assim para cada memória intermediária. Na concretização preferida,estes registadores têm um tamanho de cinco bits. Um circuito de decrementação DEC, por exemplo, compreendendo um meio-subtractor, decrementa um indicador escolhido e armazena o mesmo no registador correspondente, depois de o utilizar de acordo com o acima descrito. Quando o indicador alcança o valor 0, isto é, quando um arquivo da memória intermediária é adequado, é carregada uma constante no registador. Esta constante pode ser ligada por fio rígido às entradas do registador. 0 valor da constante é mod_número-l, onde mod_número é o tamanho da memória intermediária. Uma decrementação do mod_indicador é executada quando o sinal dec_mod_contagem é elevado. Um indicador escolhido é carregado num registador mod_registador, antes de ser decrementado ou carregado na secção de cálculo. As constantes para a dimensão da memória intermediária e localização da memória intermediária na memória podem também ser ligadas por fio rígido
957
LM 4859
-12às entradas de registador. 0 sinal amostra_velocidade escolhe as constantes que correspondem a uma certa frequência de amostragem, para armazenarem nos diferentes registadores. Cada registador da concretização preferida compreende quatro entradas D1-D4, uma para cada frequência de amostragem, ft constante para a dimensão da memória intermediária mod_número, é carregada como um valor de dois complementos, isto é como mod_número. ft constante é carregada num registador mod_num_reg com um tamanho de cinco bits. ft constante para a localização da memória intermediária na memória ê carregada como mod_início num registador mod_início_reg com um tamanho de palavra de 6 bits.
ft secção de cálculo compreende dois registadores, ft_reg que tem um tamanho de 6 bits, B_reg que têm um tamanho de 5 bits e também um adicionador de 6 bits, por exemplo, um chamado adicionador de suporte de impulso, onde o bit mais significante do adicionador é uma meia célula adicionadora.
cálculo do endereço começa carregando-se quer o dados_endereço quer a escrita_endereço no B_reg, que depende de se é executada uma operação de leitura ou de escrita. 0 ft_reg é carregado com quer o mod_indicador do mod_registador na entrada D2 quer 0 na entrada Dl. ft carga do registador ft_reg é controlada por um sinal de desactivação de módulo mod_dis que depende do modo de endereçamento escolhido, quer módulo quer endereçamento absoluto.
. No modo de endereçamento absoluto (mod_dis é elevado), 0 é carregado no registador ft_reg, de modo que o endereço de entrada dados_endereço ou escrita_endereço é adicionado a 0, Isto torna a unidade de cálculo transparente para endereçamento absoluto.
No modo módulo o mod_indicador carregado' no ft_reg é adicionado ao endereço carregado no B_reg, quer dados_endereço quer escrita_endereço. 0 resultado é realimentado para a entrada D3 do registador B_reg.
valor de dois complementos do mod__número, isto é
957
LM 4859
-mod_número, armazenado no registador mod_número_reg é transferido para o registador A_reg e adicionado ao conteúdo do registador B_reg. 0 resultado é armazenado no B_reg se o dito resultado não é negativo, Se o resultado é negativo o valor antigo é armazenado no registador Bjreg para a operação seguinte. Visto que o registador mod_número_reg foi carregado com os dois complementos de mod_número, isto é -mod_número, este procedimento de ensaio é facilitado visto que o sinal do resultado da edição pode ser lido directamente a partir do bit mais significativo do dito resultado, Este bit para além da linha +/- juntamente com o sinal CHSST ε IXZ da figura 7 controla a carga do registador B_reg.
A constante mod_início transferida do registador mod_início_reg para o registador A_reg no passo seguinte é adicionada ao conteúdo do registador B_reg e o resultado é armazenado num registador RREG para uma operação de leitura ou no registador WREG para uma operação de escrita. Este resultado é o endereço de memória final para leitura ou escrita.
Para leitura de coeficientes, em que é utilizado o endereçamento absoluto, o endereço de coeficiente coe_endereço é alimentado directamente para um registador CAREG.
A secção do fundo do processador de endereço, que é proporcionada para armazenamento de endereços e acesso da memória, compreende cinco registadores de seis bits. Os registadores RREG e WREG foram já mencionados e compreendem apenas uma entrada Dl, Os registadores DAREG e CAREG estão ligados ao bus da memória de dados DMADDRSST e ao bus de dados da memória de coeficientes CMADDRSST, respectivamente, 0 quinto registador FBREG, armazena endereços de leitura e escrita de uma maneira cíclica. Os endereços são realimentados a partir dos bus de saída CMADDRSST e DMADDRSST, respectivamente, para as correspondentes entradas Dl e D2. Esta operação de realimentação é controlada pelos sinais PDMWSST e PCMWSST da figura 7.
esquema de endereçamento de realimentação é utilizado apenas quando o processador de endereço dá, alternativamente,
957
LM 4859
-14endereços de escrita e leitura. Isto acontece quando um cálculo de filtro está completo e o resultado é escrito numa célula de memória, simultaneamente, com o início de um novo cálculo de filtro para o filtro seguinte e os dados são lidos da memória para este cálculo, ft escrita é executada quando CHSST é par e a leitura é executada quando CHSST é ímpar, ver figura 6, (nas figuras 6 e 7, R permanece para leitura e W para escrita).
Na concretização preferida do invento são processados oito canais num processo cíclico de leitura/escrita. Dois canais são processados simultaneamente, de modo que a última operação de leitura/escrita será executada nos ciclos 6 e 7.
Para uma descrição mais detalhada do funcionamento da concretização preferida do processador de endereço de acordo com o presente invento, é feita referência às seguintes definições de sinal para o processador de endereço, e à seguinte simulação do processador de endereço, na linguagem de simulação RTL da Texas Instruments»
Definições de sinal para o processador de endereço Sinais de entrada para o processador de endereço
Os sinais e variáveis que terminam em sst indicam que os valores são estável na fase de relógio serva e estão no estado verdadeiro
BUS 8 SINAL
SINAL
SINAL
SINAL
SINAL
chsst; | Séléccionar Canal | ||
izlsst; | # | Índice Zero e chsst são tratados em | portas. |
1X2 vai | |||
izósst; | para nivel elevado quando a última | amostra | |
iz7sst; | β lida da memória» | ||
pdmwsst; | Preparar Escrita na Memória Dados» | ||
pcmwsst; | Preparar Escrita na Memória de Coeficien- |
tes»
Controla a carga de dados e endereços de escrita do coeficiente nos registadores de saída DAREG, CAREG e FBREG.
957
LM 4859
-15SINAL cwsst;
# modo Escrita de Coeficientes.
Ajusta o processador de endereço no modo de cálculo de endereço absoluto. 0 cálculo do endereço de escrita para a memória de coeficientes é iniciado quando o sinal vai para nível alto, apcsst forma uma parte da palavra de instrução que vem da unidade controladora.
BUS 23 apcsst;
coe_addr = apcsst[5:0]; data_addr = apcsst[10:6]; write_addr = apcsst[15:11];
# Controlar Processador Endereço.
# Endereço de Coeficientes 6-bit.
# Endereço de dados 5-bit.
# Endereço de escrita 5-bit.
Os endereços de dados e escrita são decrementados de um, de cada vez que o contador de índice é decrementado. 0 contador de índice é carregado com o tamanho de filtro '*número_de_derivações. Tudo isto é feito na unidade controladora.
dec_mod_count = apcsst[16];
mod_sn_r = apcsst[17];
sample_rate_r = apcsst[19:18];
mod_en_w = apcsst[20];
sample_rate_w = apcsst[22:21];
# Sinal de controlo 1-bit para decrementar o contador de módulo.
# Possibilita cálculo endereço de módulo de 1-bit, modo de leitura.
# Selecciona modo de leitura de memória intermediária circular de 2-bit.
# Possibilita o cálculo de endereço módulo 1-bit, modo de escrita.
# Selecciona memória intermediária de 2-bit, modo de escrita.
SINAL lst;
SINAL lmt;
SINAL Igsrlltt;
Relógio e Sinais de ensaio. íí Relógio Servo Lacal Verdadeiro.
# Relógio Mestre Verdadeiro.
# Relógio Ensaio Local para Cadeia ,Exploração
957
LM 4859
SINAL Iscanisst; SINAL gscanisst; SINAL Iscánosst; SINAL gscanosst;
Global.
# Entrada Local de Exploração de Ensaio.
# Entrada Global de Exploração de Ensaio.
# Saída Local de Exploração de Ensaio.
# Saída Global de Exploração de Ensaio.
Sinais de Saída do Processador de Endereço
BUS 6 dmaddrsst; BUS 6 cmaddrsst;
# Endereço de Memória de Dados.
# Endereço de Memória de Coeficientes.
Variáveis Locais
REG | 6 | da_reg; | # | Registador | de endereço de dados DAREG. |
REG | 6 | c_a_reg; | # | Registador CAREG. | de endereço de coeficientes |
REG | 6 | w_del_reg_m; | # | Registador WREG. | de retardo de escrita mestre |
REG | 6 | w_del_reg_s; | Registador | de retardo de escrita servo. | |
REG | 6 | r_del_reg_m; | Registador RRE6. | de retardo de leitura mestre | |
REG | 6 | r_del_reg_s; | Registador | de retardo de leitura servo | |
REG | 6 | feedback_reg_m; | Registador FBREG. | de realimentação mestre | |
REG | 6 | feedback_reg_s; | # | Registador | de realimentação servo. |
REG | 6 | a_reg; | # | Registador dor. | de entrada para o adiciona- |
REG | 6 | breg; | Registador dor. | de entrada para o adiciona- | |
REG | 5 | mod_reg_m; | # | Registador | indicador de módulo mestre. |
REG | 5 | mod_reg_s; | Registador | indicador de módulo servo. | |
REG | 6 | mod_numb_reg_m; | Registador | de número de módulo mestre. | |
REG | 6 | mod_numb_reg_s; | Registador | de número de módulo servo. | |
REG | 6 | mod_start_reg_m; | Registador | de início de módulo mestre. | |
REG | 6 | mod_star t_reg_s; | Registador | de início de módulo servo. |
índice zero tratado em portas com canal com intervalo de tempo seleccionado 7.
EF íz7_dell_m; # índice de retardo de zero do biestável mestre.
'71 957
LM 4859
iz7„ | „dell; | tf | índice servo» | de | retardo | de | zero | do | biestável | |
FF | iz7. | jde!2jTi; | tf | índice mestre» | de | retardo | de | zero | do | biestável |
FF | iz7„ | jdel2; | tf | índice | de | retardo | de | zero | do | bíestável |
servo»
REG 5 mod„a„regjn(4);
REG 5 mod„_a„reg„_s(4);
REG 6 sum;
SINAL mod„dis;
BUS 2 sample_rates
ROM 5 mod„numb(4);
ROM 6 mod„start (4) ;
tf Registador indicador de módulo de empilhamento mestre (mod^numb-l)» tf Registador indicador de módulo de empilhamento servo» tf Bus de saida do adicionador„ # Módulo para desactivar o endereçamento absoluto quando verdadeiro» ff Velocidade de amostra» Seleccioria memória intermediária circular dependendo da memória intermediária de amostragem, dependente da frequência de amostragem» ff Constantes de número de módulo de 4, 5 bits (-modjnumb)» ff Constantes «de inicio módulo de 4S 6 bits»
SIMULAÇÃO DO PROCESSADOR DE ENDEREÇO EM RTL BLOCO addrpr (
BUS de ENTRADA Bchsst; tf Seleccionar Canal
SINAL DE ENTRADA izlsst; tt índice Zero
SINAL DE ENTRADA ízósst;
SINAL DE ENTRADA izTss-t;
SINAL DE ENTRADA pdmwsst; tf Preparar escrita na Memória de
Dados
SINAL. DE ENTRADA pcmwsst; tf Preparar escrita na Memória de Coeficientes
SINAL DE ENTRADA BUS DE ENTRADA 23 coe_addr = data_addr ~ wríte_addr ™ decjTiod_count = cwsst; tt escrita de Coeficientes apcsst; tt Controlo de processador de Endereço apcsstC5;0j; # Coeficientes de 6-bít apcsstClO;6]; tt endereço de Dados de 5-bit apcsstCl5:llj; tt endereço de Escrita de 5-bit apcsstClój; tt sinal de Controlo de 1-bit
957
Ι...Μ 4859 ”18 tnod„en_j*· - apcsst[17]; sample_rate„r ~ apcsstLl9;183; mod_jsnJ^I - apcsst[20J;
sample_rat©jA) = apcsstC22:21j;
SINAL SINAL SINAL SINAL SINAL | DE DE DE DE DE | ENTRADA ENTRADA ENTRADA ENTRADA ENTRADA | Ist; Imt; Itts Igsrlltt; Iscanisst; |
SINAL | DE | ENTRADA | gscanisst; |
SINAL | DE | SAÍDA Iscanosst; | |
SINAL | DE | SAÍDA gscanosst; |
BUS OB SAÍDA 6 dmaddrsst;
BUS DE SAÍDA 6 cmaddrsst;) # tt- Possibilitar leitura de 1-bit tt Seleccionar leitura de 2-bit tt Possibilitar escrita de 1-bit tt Seleccionar leitura de 2-bit tt Relógio Servo tt Relógio Mestre tt Relógio de Ensaio Local tt Relógio de Ensaio Global tt Entrada Local de exploração de Ensaio tt Entrada Global de exploração de Ensaio tt Saída Local de exploração de Ensaio tt Saída Global de exploração de Ensaio tt endereço de memória de Dados dereço de memória de Coeficientes
REG LOCAL 6 d__a„reg; tt
REG LOCAL 6 cji_reg; tt
REG LOCAL 6 w^del^regjn tt
REG LOCAL 6 w_del_reg_s; tt
registador | de | endereço | de | Dados |
registador entes | de | endereço | de | Coefiei |
registador mestre | de | retardo | de | Escrita |
registador servo | de | retardo | de | Escrita |
REG LOCAL 6 r_del„reg„m s
REG LOCAL 6 r„del„reg„s; tt
REG LOCAL 6 f eedback_reg__m; tt REG LOCAL 6 feedback_reg„s; tt REG LOCAL 6 a._reg; tt
REG LOCAL 6 b_reg; tt
REG LOCAL 5 mod_regjn; tt tt registador de retardo de Leitura mestre registador de retardo de Leitura servo registador de Realimentação mestre registador de Realimentação servo adicionador de registador de Entrada adicionador de registador de Entrada registador de Módulo mestre
957' LM 4859
-19FE LOCAL iz7„delljn;
FE LOCAL iz7__dell;
FE LOCAL iz7.„del2_m;
FE LOCAL iz7 de 12:
RES LOCAL 5 mod_reg„s tt registador de Módi
RES LOCAL 6 mod jnumb„reg„m s tt registador de número de Módulo mestre
RES LOCAL 6 modjiumb„reg„ss tt registador de número de Módulo servo
RES LOCAL 6 mod„start„reg_m; tt registador de início de Módulo mestre
RES LOCAL 6 mod„start_reg_s; tt registador de início de Módulo servo tt índice de retardo de zero do biestável mestre tt índice de retardo de zero do biestável servo tt índice de retardo de zero do biestável mestre tt índice de retardo de zero do biestável servo
RES LOCAL 5 mod„a„reg„m(4); tt registador de Módulo de empilhamento mestre
RES LOCAL 5 rnod„amreg_s(4); tt registador de Módulo de empilhamento servo tt adicionador de registador de saída tt desactiva Módulo tt amostra de velocidade tt constantes de número de Módulo tt constantes de início de Módulo
RES LOCAL 6 sum;
SINAL LOCAL mod_dís;
BUS LOCAL 2 sarnplemrate;
ROM 5 mod__numb(4) r,
ROM 6 mod_start(4);
PROCEDIMENTO
Constantes memória intermediária.....circular Frequência Amostragem modjiumb(o);~15; # tamanho de memória intermediária de 32 kHz:
modjiumb(l):-16; tt 16 kHz mod„numb(2) :~9; tt 8 kHz modjiumb(3) ;:~5; tt 500 Hz mod„start(0):~49; tt endereço de início na memória de 32 KHz rnodmstart(l);~33; tt 16 kHz mod„start(2);~24s tt 8 kHz mod_start(3):~20; tt 500 Hz
957 LM 4859
cs^ass^lBh
20“ tf Se verdadeiro, modo de endereçamento absoluto mod„dis: = (mod_en j^+cwsst)3t{(izósst't'iz7sst+iz7_d©ll-) + ~mod_en^*(chsst[33+chsst[43+chsstC53);
If contador módulo **** sample__rate;=SELECCI0MARCchsstC53 ssample_j~ate„ws # Selecciona OUTRA sarnple_ratemr)5 # memória tf intermediária tf circular tf Detectar Imt edge„ decrementar contador módulo no índice tf zero 1 rasgo de tempo
SE lmt*''\lmt*dectonod„count*izlsst
SE rnodmr©Slto ~ 0 tf Inicialízar indicador memória intermediária mod_á_r©9-jn(sample_rate) ;=modjiumbCsatnple_rate) ~ 1;
OUTRO tf Oecrementa indicador memória intermediária mod_a-J'©9Jn(sample_rate) ;~mod_reg_s ~ 1;
FIM
FIM
SE Ist tf Mestre para Servo mod_a_reg„s(sample„rate) :=mod_a.„reg._m(sample__.r'ate);
FIM
SE lmt tf Fase Relógio Mestre
Iz7_delljn:=:iz7sst; if Atrasar índice zero 7 1 e 2 Iz7_del2jns=iz7dell; tf ciclos respectivamente tf Carregar registador de módulo de empilhamento mod„..reg jti s _a„reg„s (sample_rate);
SE (chsstC23 + chsstQS]) tf Carregar tamanho memória intermediária mod„numb_r©9-jn“(~m©ó_numb_„(sample„rate)) ; tt Carregar endereço início memória intermediáia mod„start„r®9_jn = -mod_start(sample_rate);
FIM
957
LM 4859
-21“ tt Carregar registadores A e B oom dados
a_.reg x~ SELECCIQNAR ( (chsst[5]+chsstE7]*''mod_dis π mod_start._reg_j3 5 (chsst[43+chsstC7]*~mod„.dis x mod_numb_reg_ss (chsstC33+chsst[6]*~mod.„dis x mod_reg_s; mod_dís x OxOO; tt modo endereçamento absoluto OUTRO \a_reg tt Manter dados antigos no registador
A )S b_reg x = SELECCIQNAR <
ehsst[33 s data_addr;
izósst x write__addrs 'sumE53*(chsstE43+chsstE53 + iz7sst+iz7_dell) x sum;
OUTRO \b_reg tt Manter dados antigos no registador B )s
SE chsst[63 r_de l_reg_jn x- sum; # Carregar registador de retardo de leitura
FIM tt com endereço calculado RREQ
SE iz7_.de 12 w_del„j~eg,jn x= sum
FIM tt Carregar registador de retardo de escrita tt com endereço calculado WRE6 tt m* Carregar endereço de coeficientes, CAREQ **** c_.a_.reg x~ SELECCIQNAR (
í.z7sst*pcmwsst x w_del„reg„s; tt WREQ chsstEOl x coe„addr; tt Endereço externo ''iz7sst*''chsst[O3*pcmwsst x feedback_reg_s; OUTRO \ c_a„reg )S
957
LM 4859
0///'Λ //=/
ί.
-22#--------------------------------------------------# «·««* Carregar endereço de dados DARES d_a_reg : = SÉLÉCCIONAR
C iz7sst*pdmwsst ϊ w_del_reg_s; § WRES chsst[O] : r_del_reg_s| # RRES ^iz7sst«^c’nsst[0]^pdmwsst ~ feedback_reg_s; OUTRO \ d_a_reg );
#------------------------------------------------------------# ***·* Carregar endereço de realimentação FBRES feedback_reg_m i =SELECCIONAR (
pdmwsst - dmaddrsst; # Endereço de memória de dados.
pcmwsst : cmaddrsst; # Endereço de memória de coeficientes.
OUTRO \ feedback_reg_m )ϊ
FIM # lmt # Transferência de Mestre para Servo # ----------------------------------SE Ist mod_reg_s := mod_reg_m; mod:numb_reg_s :- mod_numb_reg_m; mod_start_reg_s -= mod_start_reg_m; sum := a_reg + b_reg; # Calcular r_del_reg_s -= r_del_reg_m; w_del_reg_s := w_del_reg_m; feedback_reg_s := feedback_reg_m;
dmaddrsst := d_a_reg; # Pôr endereço de dados no bus cmaddrsst := c_a_reg; # Pôr endereço de coeficientes no bus iz7_dell : = iz7_dell_m;
iz7_de!2 := iz7_del2_m;
FIM # Ist
FIM # procedimento
957
LM 4859
Deve-se ter em conta que o invento não está limitado especificamente às concretizações descritas e que muitas modificações podem ser executadas por um perito na arte» Por exemplo, o tamanho da memória intermediária pode ser reduzido de modo a tornar-se a soma do número de elementos de retardo nos filtros que estão contidos na memória intermediária, se a última amostra X(n) for armazenada num registador» Além do mais, o número de canais, o número de memórias intermediárias em cada um dos canais, o tamanho da palavra para os diferentes registadores e o processo de carregamento das constantes nos diferentes registadores pode ser variado sem se afastar do espírito do invento que está definido nas seguintes reivindicações de patente.
Claims (7)
- REIVINDICAÇÕES1 - Processador de endereço para um processador de sinal, caracterizado por compreender:meios para o cálculo de endereço numa memória de leitura/ /escrita contendo, pelo menos, uma memória intermediária circular para armazenar as variáveis de estado (X(n), X(n-l),...; Y(n),Y(n-l),...; W(n), W(n~l),...), de filtros digitais, pelo menos, uma memória intermediária contendo variáveis de estado para, pelo menos, dois filtros digitais, cada um dos filtros na mesma memória intermediária correspondendo à mesma frequência de amostragem (amostra_velocidade) e o tamanho da memória intermediária (mod_número) depender da soma do número de elementos de retardo nos filtros que correspondem à respectiva memória intermediária, compreendendo os ditos meios:(a) um conjunto (S) de registadores para armazenar o endereço do arquivo corrente (mod_indicador) para cada memória intermediária circular relativo ao endereço de início absoluto (mod_início) da dita memória intermediária; e (b) uma unidade de cálculo (+) para executar os passos de:(1) adicionar o endereço do arquivo corrente (mod_indicador) ao deslocamento (dados_endereço, escrita_endereço) de uma variável de estado seleccionada (X(n), X(n-1Y(n), Y(n-1W(n), W(n-1relativo ao endereço de início da memória intermediária (mod_início), (2) reduzir a soma (dados^endereço + mod_indicador, escrita endereço + mod_indicador), obtida no passo (1) pelo dito tamanho da memória intermediária correspondente (mod_número) se a dita soma exceder ou for igual a este tamanho da memória intermediária, e (3) adicionar o endereço de início da memória intermediária (mod_inicio) ao resultado obtido no passo (2) para obter o71 957LM 4859-25endereço absoluto da dita variável de estado seleccionada.
- 2 - Processador de endereço de acordo com a reivindicação 1, caracterizado por o dito tamanho da memória intermediária (mod__nú mero) ser formada pela soma do número do elemento de retardo nos filtros que correspondem à memória intermediária respectiva mais um.
- 3 - Processador de endereço de acordo com a reivindicação 1 ou 2, caracterizado por a dita unidade de cálculo (+) ser formada por um adicionador, a possível redução no passo (2) ser executada pela adição de dois complementos do dito tamanho da memória intermediária (-mod_número) à dita soma no passo (1).
- 4 - Processador de endereço de acordo com a reivindicação 3, caracterizado por compreender um primeiro registador (A_reg) para armazenar em sequência, um após outro, o endereço do arquivo corrente (mod_indicador), os dois complementos (~mod_número) do dito tamanho de memória intermediária e o endereço de início de memória intermediária (mod_inicio).
- 5 - Processador de endereço de acordo com a reivindicação 4, caracterizado por compreender um segundo registador (B_reg) para armazenar em sequência um após outro, o deslocamento (dados_endereço, escrita_endereço) da variável de estado seleccionada (X(n), X(n-l),...; Y(n), Y(n-l),...; W(n), W(n-l),...) relativo ao início da memória intermediária correspondente (mod_início), a soma obtida no passo (1) e possivelmente o resultado obtido no passo (2).ó - Processador de endereço de acordo com a reivindicação 5, caracterizado por o bit mais significativo no dito adicionador (+) depois do passo (2) ser utilizado como um bit de sinal e manter o resultado no passo (1) no segundo registador (B_reg) se o resultado do passo (2) é negativo, e substituir o resultado no segundo registador (B_reg) obtido no passo (1) pelo resultado do passo (2) se este resultado não é negativo.71 957LM 4859 ”267 - Processador de endereço de acordo com qualquer das reivindicações anteriores, caracterizado por cada filtro ser calculado extraindo as variáveis de estado (X(n), X(n-l),.„ „ ? Y(n), Y(n-l),„»„; (W(n)„ W(n-l)...) do filtro e os coeficientes correspondentes em sequência um após outro utilizando-se um índice, que é igual ao número cie elementos de retardo no dito filtro, o dito índice ser adicionado à posição de início do filtro para obter a variável de estado mais antiga e o coeficiente correspondente e ser então reduzido para 0 para obter as variáveis de estado cada vez mais novas,
- 8 - Processador de endereço de acordo com a reivindicação 7, caracterizado por o valor de um filtro calculado ser escrito na posição de memória da variável de estado mais antiga no filtro anterior, de modo a esta posição de memória ser reutilizada.
- 9 - Processador de endereço de acordo com qualquer das reivindicações precedentes, caracterizado por o dito registador e o dito conjunto (8) conterem quatro registadores.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9000155A SE465393B (sv) | 1990-01-16 | 1990-01-16 | Adressprocessor foer en signalprocessor |
Publications (2)
Publication Number | Publication Date |
---|---|
PT96482A PT96482A (pt) | 1991-10-31 |
PT96482B true PT96482B (pt) | 1998-07-31 |
Family
ID=20378264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PT96482A PT96482B (pt) | 1990-01-16 | 1991-01-15 | Processador de endereco para um processador de sinal |
Country Status (20)
Country | Link |
---|---|
US (1) | US5282275A (pt) |
EP (1) | EP0438991B1 (pt) |
JP (1) | JPH05506735A (pt) |
KR (1) | KR970008186B1 (pt) |
CN (1) | CN1022591C (pt) |
AU (1) | AU644848B2 (pt) |
BR (1) | BR9007978A (pt) |
CA (1) | CA2070668C (pt) |
DE (1) | DE69029796T2 (pt) |
DK (1) | DK0438991T3 (pt) |
DZ (1) | DZ1478A1 (pt) |
ES (1) | ES2096583T3 (pt) |
FI (1) | FI98326C (pt) |
GR (1) | GR3022380T3 (pt) |
IE (1) | IE77511B1 (pt) |
NO (1) | NO301951B1 (pt) |
PT (1) | PT96482B (pt) |
SE (1) | SE465393B (pt) |
TN (1) | TNSN91002A1 (pt) |
WO (1) | WO1991010955A1 (pt) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5448706A (en) * | 1992-05-13 | 1995-09-05 | Sharp Microelectronics Technology, Inc. | Address generator for multi-channel circular-buffer style processing |
DE69325207T2 (de) * | 1992-06-15 | 1999-12-09 | Koninklijke Philips Electronics N.V., Eindhoven | Prozessor zur Verarbeitung zeitdiskreter Signale |
US5463749A (en) * | 1993-01-13 | 1995-10-31 | Dsp Semiconductors Ltd | Simplified cyclical buffer |
JPH07244649A (ja) * | 1994-03-08 | 1995-09-19 | Fujitsu Ltd | 割込処理分散方式 |
FR2718262B1 (fr) * | 1994-03-31 | 1996-05-24 | Sgs Thomson Microelectronics | Mémoire tampon à adressage modulo. |
JP2820048B2 (ja) * | 1995-01-18 | 1998-11-05 | 日本電気株式会社 | 画像処理システムとその記憶装置およびそのアクセス方法 |
US5764939A (en) * | 1995-10-06 | 1998-06-09 | Lsi Logic Corporation | RISC processor having coprocessor for executing circular mask instruction |
JPH11109911A (ja) * | 1997-09-30 | 1999-04-23 | Fuurie Kk | 表示装置 |
GB2386485B (en) * | 2002-03-12 | 2004-06-23 | Toshiba Res Europ Ltd | Modulo addressing apparatus and methods |
US8117248B2 (en) | 2005-02-28 | 2012-02-14 | Hitachi Global Storage Technologies Netherlands B.V. | Digital filter instruction and filter implementing the filter instruction |
US8051090B2 (en) * | 2007-12-28 | 2011-11-01 | Realtek Semiconductor Corp. | File management method of a ring buffer and related file management apparatus |
US8219782B2 (en) * | 2008-09-18 | 2012-07-10 | Xilinx, Inc. | Address generation |
KR102244613B1 (ko) * | 2013-10-28 | 2021-04-26 | 삼성전자주식회사 | Qmf 필터링 방법 및 이를 수행하는 장치 |
CN109408276A (zh) * | 2018-10-25 | 2019-03-01 | 江苏华存电子科技有限公司 | 一种纠正码中规律交错器低延迟平行化架构位址绕线机制 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0042452B1 (en) * | 1980-06-24 | 1984-03-14 | International Business Machines Corporation | Signal processor computing arrangement and method of operating said arrangement |
SU1223346A1 (ru) * | 1984-08-25 | 1986-04-07 | Предприятие П/Я А-1811 | Нерекурсивный цифровой фильтр |
US4722067A (en) * | 1985-03-25 | 1988-01-26 | Motorola, Inc. | Method and apparatus for implementing modulo arithmetic calculations |
US4800524A (en) * | 1985-12-20 | 1989-01-24 | Analog Devices, Inc. | Modulo address generator |
US4908748A (en) * | 1987-07-28 | 1990-03-13 | Texas Instruments Incorporated | Data processing device with parallel circular addressing hardware |
-
1990
- 1990-01-16 SE SE9000155A patent/SE465393B/sv unknown
- 1990-12-05 AU AU71882/91A patent/AU644848B2/en not_active Ceased
- 1990-12-05 CA CA002070668A patent/CA2070668C/en not_active Expired - Fee Related
- 1990-12-05 BR BR909007978A patent/BR9007978A/pt not_active IP Right Cessation
- 1990-12-05 WO PCT/SE1990/000805 patent/WO1991010955A1/en active IP Right Grant
- 1990-12-05 DE DE69029796T patent/DE69029796T2/de not_active Expired - Fee Related
- 1990-12-05 KR KR1019920701667A patent/KR970008186B1/ko not_active IP Right Cessation
- 1990-12-05 JP JP91503839A patent/JPH05506735A/ja active Pending
- 1990-12-05 DK DK90850397.2T patent/DK0438991T3/da active
- 1990-12-05 EP EP90850397A patent/EP0438991B1/en not_active Expired - Lifetime
- 1990-12-05 ES ES90850397T patent/ES2096583T3/es not_active Expired - Lifetime
-
1991
- 1991-01-04 IE IE2391A patent/IE77511B1/en not_active IP Right Cessation
- 1991-01-08 DZ DZ910004A patent/DZ1478A1/fr active
- 1991-01-10 US US07/639,545 patent/US5282275A/en not_active Expired - Lifetime
- 1991-01-15 CN CN91100219A patent/CN1022591C/zh not_active Expired - Fee Related
- 1991-01-15 TN TNTNSN91002A patent/TNSN91002A1/fr unknown
- 1991-01-15 PT PT96482A patent/PT96482B/pt not_active IP Right Cessation
-
1992
- 1992-06-29 NO NO922568A patent/NO301951B1/no unknown
- 1992-07-15 FI FI923253A patent/FI98326C/fi active
-
1997
- 1997-01-28 GR GR970400121T patent/GR3022380T3/el unknown
Also Published As
Publication number | Publication date |
---|---|
AU7188291A (en) | 1991-08-05 |
GR3022380T3 (en) | 1997-04-30 |
WO1991010955A1 (en) | 1991-07-25 |
JPH05506735A (ja) | 1993-09-30 |
FI923253A0 (fi) | 1992-07-15 |
IE77511B1 (en) | 1997-12-17 |
CN1053693A (zh) | 1991-08-07 |
BR9007978A (pt) | 1992-12-01 |
FI98326B (fi) | 1997-02-14 |
SE465393B (sv) | 1991-09-02 |
NO922568D0 (no) | 1992-06-29 |
DE69029796D1 (de) | 1997-03-06 |
CN1022591C (zh) | 1993-10-27 |
FI923253A (fi) | 1992-07-15 |
FI98326C (fi) | 1997-05-26 |
AU644848B2 (en) | 1993-12-23 |
ES2096583T3 (es) | 1997-03-16 |
NO301951B1 (no) | 1997-12-29 |
CA2070668A1 (en) | 1991-07-17 |
IE910023A1 (en) | 1991-07-17 |
KR970008186B1 (ko) | 1997-05-21 |
EP0438991B1 (en) | 1997-01-22 |
DZ1478A1 (fr) | 2004-09-13 |
TNSN91002A1 (fr) | 1992-10-25 |
DK0438991T3 (da) | 1997-02-10 |
US5282275A (en) | 1994-01-25 |
SE9000155D0 (sv) | 1990-01-16 |
NO922568L (no) | 1992-06-29 |
DE69029796T2 (de) | 1997-05-07 |
SE9000155L (sv) | 1991-07-17 |
PT96482A (pt) | 1991-10-31 |
EP0438991A1 (en) | 1991-07-31 |
CA2070668C (en) | 1996-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
PT96482B (pt) | Processador de endereco para um processador de sinal | |
EP0248906B1 (en) | Multi-port memory system | |
US4751684A (en) | Search apparatus | |
KR960012993B1 (ko) | 데이터 전송방법 | |
GB2025096A (en) | Memory board withlogical address modification | |
WO1999046676A2 (en) | Data conversion hardware support | |
US6157904A (en) | Hardware simulator capable of dealing with a description of a functional level | |
JPH01100650A (ja) | 情報処理装置 | |
Smoliar | EUTERPE A Computer Language for the Expression of Musical Ideas | |
JPH01201749A (ja) | 仮想記憶制御装置 | |
JPS5916351B2 (ja) | 情報制御装置 | |
Rudanko | Topicalization and the Cyclicity of Extraposition | |
SU1298859A1 (ru) | Адресное устройство дл цифрового фильтра | |
JPH03116277A (ja) | シミュレーション・システム及びシミュレーション方法 | |
JPS6211970A (ja) | アドレス発生回路 | |
JPH03278225A (ja) | 編集命令実行方式 | |
JPS60247708A (ja) | プログラマブル・コントロ−ラ | |
JPS62114055A (ja) | ダイレクト.メモリ.アクセス制御装置 | |
JPH0474746B2 (pt) | ||
JPH0243645A (ja) | 記憶装置 | |
JPS61233492A (ja) | 磁気バブル記憶装置 | |
JPH01112177A (ja) | テスト回路 | |
Clarke et al. | Speeding up the SKIM list processor with caches | |
JPH0311565B2 (pt) | ||
JPH0540601A (ja) | アドレス生成回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
BB1A | Laying open of patent application |
Effective date: 19910725 |
|
FG3A | Patent granted, date of granting |
Effective date: 19980409 |
|
MM3A | Annulment or lapse |
Free format text: LAPSE DUE TO NON-PAYMENT OF FEES Effective date: 20001031 |