ITTO20010838A1 - Metodo per trasferire dati in un circuito elettronico, circuito elettronico e dispositivo relativo. - Google Patents

Metodo per trasferire dati in un circuito elettronico, circuito elettronico e dispositivo relativo. Download PDF

Info

Publication number
ITTO20010838A1
ITTO20010838A1 IT2001TO000838A ITTO20010838A ITTO20010838A1 IT TO20010838 A1 ITTO20010838 A1 IT TO20010838A1 IT 2001TO000838 A IT2001TO000838 A IT 2001TO000838A IT TO20010838 A ITTO20010838 A IT TO20010838A IT TO20010838 A1 ITTO20010838 A1 IT TO20010838A1
Authority
IT
Italy
Prior art keywords
block
circuit
data
interface device
electronic circuit
Prior art date
Application number
IT2001TO000838A
Other languages
English (en)
Inventor
Maura Turolla
Pierangelo Garino
Antonio Varriale
Andrea Bragagnini
Original Assignee
Telecom Italia Lab Spa
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 Telecom Italia Lab Spa filed Critical Telecom Italia Lab Spa
Priority to IT2001TO000838A priority Critical patent/ITTO20010838A1/it
Publication of ITTO20010838A0 publication Critical patent/ITTO20010838A0/it
Priority to CN028169026A priority patent/CN1549975B/zh
Priority to DE60210637T priority patent/DE60210637T2/de
Priority to AT02777772T priority patent/ATE323308T1/de
Priority to JP2003523385A priority patent/JP4551657B2/ja
Priority to EP02777772A priority patent/EP1425673B1/en
Priority to KR1020047002436A priority patent/KR101020709B1/ko
Priority to PCT/IT2002/000549 priority patent/WO2003019395A1/en
Priority to CA2457880A priority patent/CA2457880C/en
Priority to US10/488,481 priority patent/US20040243742A1/en
Publication of ITTO20010838A1 publication Critical patent/ITTO20010838A1/it

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)
  • Microcomputers (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)

Description

Descrizione dell'invenzione industriale avente per titolo: "Metodo per Trasferire Dati in un Circuito Elettronico, Circuito Elettronico e Dispositivo Relativo"
TESTO DELLA DESCRIZIONE
SETTORE DELLA TECNICA
La presente invenzione si riferisce ad un metodo per trasferire dati in un circuito elettronico comprendente un'unità di controllo (CPU), un primo blocco circuitale avente mezzi di memoria ed un secondo blocco circuitale atto a scambiare dati con tale primo blocco circuitale.
La presente invenzione riguarda anche un circuito elettronico ed un dispositivo atti a realizzare il metodo secondo la presente invenzione.
In particolare, la presente invenzione riguarda i sottosistemi di collaudo atti, ad esempio, a realizzare ed emulare catene di trasmissione e ricezione in cui coesistono blocchi circuitali implementati sotto forma di hardware (blocchi hardware) e/o sotto forma di firmware (blocchi firmware) ed in cui il collaudo consiste nell 'attivare selettivamente le funzioni dei blocchi che formano la catena e nel controllare, ad esempio, il trasferimento di dati da un blocco all'altro attraverso la RAM.
ARTE NOTA
Come noto, lo scambio di dati fra blocchi circuitali hardware e/o firmware atti a svolgere funzioni elaborative specifiche richiede un grosso impegno della CPU, in particolare nei sottosistemi di collaudo o di emulazione di circuiti elettronici .
Si prenda, ad esempio, lo schema logico di Fig.l relativo ad un sottosistema emulatore o di collaudo 10, di tipo noto, ad esempio il sottosistema emulatore modello ARM INTEGRATOR/AP della Società ARM Corp ., atto ad essere utilizzato per emulare il comportamento di un circuito costituito da una pluralità di blocchi hardware e/o firmware.
Tale sottosistema 10 comprende, in una delle possibili configurazioni, una piastra base 12, un primo modulo 14, m cui e possibile alloggiare almeno una logica programmabile di tipo FPGA (Field Programmatale Gate Array) 41, ed un secondo modulo 16, in cui è possibile alloggiare almeno un microprocessore di tipo DSP (Digital Signal Processor) 61.
La piastra base 12 di tale sottosistema 10 comprende un microprocessore di controllo (CPU) 21, ad esempio del tipo ARM7TDMI, una memoria ad accesso casuale (RAM) 22 e un canale dati, controlli e comandi (BUS) 24; al BUS 24 sono collegati, in modo noto, la CPU 21, la RAM 22, la logica FPGA 41 ed il microprocessore di tipo DSP (DSP) 61.
Come noto, durante le fasi di emulazione, il trasferimento di dati da un blocco hardware, emulato ad esempio con la logica FPGA 41, ed un blocco firmware, emulato ad esempio con il DSP 61, viene eseguito nel seguente modo:
- la CPU 21, una volta che la logica FPGA 41 ha eseguito le funzioni elaborative implementate nella FPGA 41 stessa ed ha segnalato il completamento alla CPU 21, procede a controllare passo passo il trasferimento dei dati elaborati dalla FPGA 41 alla RAM 22 mediante
- accesso al BUS 24 per leggere dalla logica FPGA 41 i dati elaborati; e
- accesso al BUS 24 per scrivere sulla RAM 22 i dati letti; e
- completato il trasferimento alla RAM 22, la CPU 21 legge i dati dalla RAM 22 e li trasferisce al DSP 61 mediante accesso al BUS 24 per leggere dalla RAM 22 i dati precedentemente memorizzati; e
- accesso al BUS 24 per scrivere sul DSP 61 i dati letti. Naturalmente il processo di trasferimento da DSP 61 a FPGA 41 è sostanzialmente analogo ma inverso.
Un primo problema tecnico dell'arte nota consiste nel fatto che, per ogni trasferimento da FPGA (blocco hardware) 41 o da DSP (blocco firmware) 61 a RAM 22 o viceversa, il BUS 24 viene occupato due volte e che, per ogni trasferimento da blocco hardware 41 a blocco firmware 61 o viceversa, il BUS 24 viene occupato 4 volte con il risultato di sovraccaricare il BUS 24, in particolare nelle situazioni in cui si richieda al sottosistema 10 di emulare, ad esempio, una catena di trasmissione in tempo reale.
Un secondo problema dell'arte nota consiste nel fatto che durante qualunque trasferimento di dati, la CPU 21 è impegnata a gestire e controllare passo passo il trasferimento dei dati, con la conseguenza di non poter svolgere altre funzioni elaborative necessarie all'emulazione del circuito elettronico da collaudare.
A causa dei problemi sopra esposti dell'arte nota, è spesso necessario maggiorare le caratteristiche del BUS o della CPU del sistema utilizzato in modo da supportare il sovraccarico dovuto al trasferimento dei dati da blocco a blocco o da blocco a RAM.
Naturalmente i problemi di cui sopra non sono rilevabili solo nei sottosistemi di emulazione descritti, ma anche, in genere, in tutti i circuiti elettronici di media ed elevata complessità in cui il trasferimento dei dati fra blocchi circuitali che svolgono funzioni elaborative specifiche segua metodologie simili a quelle indicate.
DESCRIZIONE DELL'INVENZIONE
Scopo della presente invenzione è descrivere un metodo per trasferire dati in un circuito elettronico che permetta di ridurre il carico della CPU e del BUS almeno del 50 % rispetto all'arte nota, senza particolare aggravio di costi.
Scopo della presente invenzione è anche un circuito elettronico e dispositivo atti a ridurre il sovraccarico della CPU e del BUS durante il trasferimento dei dati da blocco circuitale a RAM o da un primo blocco circuitale ad un altro.
Raggiunge lo scopo il metodo, il circuito e il dispositivo come rivendicati.
In particolare raggiunge lo scopo il metodo secondo 11invenzione in cui le funzioni della CPU relative al trasferimento di dati da blocco circuitale a RAM o da blocco a blocco sono intercettate e gestite direttamente da dispositivi elettronici associati ai blocchi circuitali stessi.
Inoltre raggiunge lo scopo il circuito elettronico secondo l'invenzione in cui i blocchi circuitali, hardware o firmware, sono associati a corrispondenti dispositivi atti a gestire direttamente il trasferimento da e verso RAM o da blocco a blocco senza il controllo della CPU.
Grazie ad un'ulteriore caratteristica della presente invenzione, inoltre, ciascun dispositivo elettronico associato ad un blocco circuitale oltre ad alleggerire il carico di CPU e BUS, è anche atto, essendo programmabile, ad eseguire, ad esempio, funzioni di adattamento del blocco al circuito e rendere il blocco circuitale stesso, firmware o hardware, sostanzialmente "neutro", cioè indipendente dal circuito in cui il blocco stesso è inserito.
DESCRIZIONE SINTETICA DELLE FIGURE
Questa ed altre caratteristiche della presente invenzione risulteranno chiare dalla seguente descrizione di una forma preferita di esecuzione, fatta a titolo esemplificativo e non limitativo con l'ausilio degli annessi disegni, in cui:
Fig. 1 Rappresenta uno schema a blocchi di un sottosistema emulatore secondo l'arte nota;
Fig. 2 rappresenta uno schema a blocchi di un sottosistema emulatore o circuito elettronico secondo l'invenzione; e
Fig. 3 rappresenta uno schema a blocchi del dispositivo atto a realizzare il circuito elettronico di Fig.2.
DESCRIZIONE DI UNA FORMA PREFERITA DI REALIZZAZIONE
Con riferimento alla Fig. 2 un circuito elettronico (circuito) 101, secondo l'invenzione, è ad esempio costituito da un sottosistema emulatore del tipo descritto in Fig.l in cui al blocco hardware 41 ed al blocco firmware 61 sono associati, rispettivamente, un primo dispositivo di interfaccia (primo dispositivo) 45a ed un secondo dispositivo di interfaccia (secondo dispositivo) 45b interposti fra i rispettivi blocchi 41 e 61 ed il BUS 24.
In particolare, in accordo al presente esempio di realizzazione, il primo modulo 14, ad esempio costituito dal modulo ARM INTEGRATOR/LM, comprende una logica programmabile di tipo FPGA (blocco hardware) 41, ad esempio di tipo XCV2000E della Società XILINX Corp., ed il primo dispositivo 45a.
Il primo dispositivo 45a è collegato, mediante una prima connessione 46a al blocco hardware 41, mediante una seconda connessione 47 al BUS 24 (Fig.2 e Fig.3), comprendente come noto un canale indirizzi (ADDRESS BUS) 24a, un canale controlli (CONTROL BUS) 24b ed un canale dati (DATA BUS) 24c, e mediante fili di controllo 48 e 49 di tipo noto, ad esempio per segnali di Interrupt I/O, alla CPU 21.
Il secondo modulo 16, ad esempio costituito da un modulo PCI (Peripheral Component Interconnect) di tipo noto, comprende un microprocessore DSP (blocco firmware) 61, ad esempio un microprocessore TMS320C6201 della Società Texas Instruments Corp., ed il secondo dispositivo 45b.
Il secondo dispositivo 45b è collegato, mediante una prima connessione 46b al blocco firmware 61, mediante una seconda connessione 67 al BUS 24 e mediante fili di controllo 68 e 69, di tipo noto, alla CPU 21.
I dispositivi 45a e 45b, come verrà di seguito descritto in dettaglio, sono atti ad intercettare determinati comandi della CPU 21 ed a controllare il trasferimento dei dati dai rispettivi blocchi 41 e 61 alla RAM 22, e viceversa, o da blocco hardware 41 a blocco firmware 61, e viceversa, senza il controllo della CPU 21.
Naturalmente, come può essere facilmente compreso da un tecnico del settore, la presenza nel circuito 101 dei dispositivi 45a e 45b, richiede anche la presenza di un elemento circuitale di arbitraggio (BUS arbiter) 27, di tipo noto, atto a controllare l'accesso sequenziale al BUS 24 da parte della CPU 21 e dei dispositivi 45a e 45b.
I dispositivi 45a e 45b differiscono solo per aspetti di specializzazione relativi alle caratteristiche dei blocchi cui sono associati e, pertanto, si fornisce di seguito la struttura e le funzioni del primo dispositivo 45a.
Per ciò che riguarda le connessioni, come verrà di seguito descritto in dettaglio, le connessioni 46a e 46b, sono specifiche e legate alle caratteristiche dei rispettivi blocchi 41 e 61, mentre le connessioni 47, 48 e 49 e le corrispondenti 67, 68, e 69 sono di tipo equivalente.
II dispositivo 45a comprende un componente controllore di trasferimenti dati (TRANS CONTROLLER) 51, un componente controllore di memoria (MEMORY CONTROLLER) 55 ed un componente di interfaccia blocco (BLOCK CONTROLLER) 54a.
Il TRANS CONTROLLER 51 è collegato al MEMORY CONTROLLER 55 al BLOCK CONTROLLER 54a, all1ADDRESS BUS 24a ed al DATA BUS 24c ed è atto a scambiare comandi con la CPU 21, mediante i fili di controllo 48 e 49, ed a scambiare i dati, ad esempio, con la RAM 22 in cooperazione con il MEMORY CONTROLLER 55, o prelevando i dati dal DATA BUS 24c e trasferendoli al BLOCK CONTROLLER 54a o facendo il viceversa.
Il TRANS CONTROLLER 51 è anche atto a scambiare comandi con la CPU 21 per mezzo del DATA BUS 24c, per svolgere, ad esempio, funzioni di inizializzazione o funzioni speciali definite in fase di sviluppo del circuito elettronico 101 e/o del dispositivo 45a, come verrà più avanti descritto in dettaglio.
Il TRANS CONTROLLER 51 è ad esempio costituito da una macchina a stati, di tipo noto, atta ad eseguire una sequenza di operazioni predefinite a fronte di comandi predefiniti, quali segnali di Interrupt I/O provenienti dalla CPU 21 o una particolare configurazione di bit presente sul DATA BUS 24c in fase di inizializzazione.
La macchina a stati del TRANS CONTROLLER 51, in una forma preferita di realizzazione, comprende, ad esempio, una memoria di programma 511 ed un circuito sequenziatore (sequenziatore) 512, noti in sé.
La memoria di programma (511) è atta, ad esempio, a memorizzare una molteplicità di sequenze di istruzioni sviluppate in fase di progetto o determinate in fase di configurazione del circuito elettronico 101.
Il sequenziatore 512 è collegato alla memoria di programma 511 ed è atto a leggere ed eseguire selettivamente, a fronte di comandi predefiniti provenienti dalla CPU 21, le sequenze di istruzioni contenute nella memoria di programma 511.
Naturalmente le varie sequenze di operazioni sono implementabili in fase di sviluppo o di configurazione del circuito elettronico 101 e sono, in una forma preferita di realizzazione, diversificate in funzioni operative standard e funzioni di inizializzazione .
Il MEMORY CONTROLLER 55 è collegato al TRANS CONTROLLER 51, all 'ADDRESS BUS 24a ed al CONTROL BUS 24b, ed è atto a richiedere al CONTROL BUS 24b, in modo noto, a fronte di comandi provenienti dal TRANS CONTROLLER 51, di attivare la lettura o scrittura da o verso un indirizzo della RAM 22 o un indirizzo di un ulteriore blocco circuitale contenuto, ad esempio, nell 'ADDRESS BUS 24a o in registri interni al MEMORY CONTROLLER 55 stesso.
Per ragioni di generalità d'uso, il MEMORY CONTROLLER 55 comprende, ad esempio, un MEMORY CONTROLLER GENERIC 551, atto a generare una funzione generica di richiesta al CONTROL BUS 24b ed un MEMORY CONTROLLER SPECIFIC 552, atto a specializzare la richiesta al CONTROL BUS 24b in funzione del tipo di CONTROL BUS in uso nel circuito elettronico 101.
Il MEMORY CONTROLLER 55 può, ad esempio, essere realizzato con logica discreta di tipo noto o, anche, per sintesi, a partire da un modello di memory controller appartenente ad una libreria di componenti di tale tipo e, preferibilmente, comprende dei registri in cui memorizzare indirizzi della RAM 22 cui puntare per leggere o scrivere i dati o indirizzi di ulteriori blocchi circuitali cui trasferire direttamente i dati .
Naturalmente tali indirizzi possono essere definiti in fase di configurazione del dispositivo 45a in funzione delle caratteristiche del blocco 41 associato o predefiniti nella fase di progetto del circuito elettronico 101.
Il BLOCK CONTROLLER 54a è collegato al blocco hardware 41 ed al TRANS CONTROLLER 51 ed è atto a comandare il blocco hardware 41, sulla base di comandi provenienti dal TRANS CONTROLLER 51, ad eseguire le funzioni specifiche del blocco stesso 41.
Il BLOCK CONTROLLER 54a è anche atto, a fronte del completamento delle funzioni specifiche da parte del blocco hardware 41, a segnalare al TRANS CONTROLLER 51 il completamento di tali funzioni da parte del blocco stesso 41.
Preferibilmente, il BLOCK CONTROLLER 54a comprende un BUFFER di I/O 541a, noto in sé, atto a memorizzare, in accordo al presente esempio di realizzazione, i dati da scambiare fra il blocco hardware 41 e la RAM 22 o un ulteriore blocco.
In particolare, il BUFFER di I/O 541a è atto, ad esempio, a memorizzare, alternativamente, o i dati in ingresso al blocco 41 al momento dell'attivazione del blocco stesso o i dati in uscita dal blocco 41 al completamento delle funzioni del blocco stesso .
Il BLOCK CONTROLLER 54a del dispositivo 45a ed il BLOCK CONTROLLER del dispositivo 45b sono specializzati sul blocco cui sono associati, in quanto le caratteristiche di attivazione dei rispettivi blocchi (45a e 45b) e l'ampiezza dei dati da scambiare per ciascun blocco è in genere diversificata da blocco a blocco; pertanto, i dispositivi 45a e 45b differiscono, in accordo al presente esempio di realizzazione e preferibilmente, solo per le caratteristiche dei rispettivi BLOCK CONTROLLER che, come descritto, dipendono, a propria volta, dalle caratteristiche dei blocchi 41 e 61 cui sono interi acciati .
I BLOCK CONTROLLER sono implementabili, ad esempio, mediante logiche elementari o, anche, mediante macchine a stati aventi funzioni predefinite a fronte di comandi provenienti dal TRANS CONTROLLER associato o dal rispettivo blocco 41 o 61.
Preferibilmente, in fase di inizializzazione del circuito elettronico 101, i BLOCK CONTROLLER sono atti ad essere programmati da parte della CPU 21, per mezzo dell'associato TRANS CONTROLLER, e pertanto, grazie a tale caratteristica, sono tali da permettere di adattare le caratteristiche dei rispettivi blocchi a quelle del circuito elettronico in cui i blocchi stessi sono inseriti.
Il dispositivo 45a associato al blocco hardware 41 ed il dispositivo 45b associato al blocco firmware 61, grazie all'architettura descritta ed in accordo alla presente invenzione, sono atti ad attivare ed eseguire il trasferimento dei dati dalla RAM 22 ai rispettivi blocchi (41 e 61) o da blocco hardware 41 a blocco firmware 61 e viceversa riducendo drasticamente il carico della CPU 21 e del BUS 24.
Si prenda ad esempio il trasferimento di dati dal blocco hardware 41 alla RAM 22.
A fronte della segnalazione da parte del BLOCK CONTROLLER 54a del completamento delle funzioni del blocco hardware 41, il TRANS CONTROLLER 51 comanda, senza richiedere interventi alla CPU 21, il MEMORY CONTROLLER 55 ad attivare la scrittura sulla RAM 22 del contenuto del BUFFER di I/O 541a agli indirizzi indicati nei registri interni al MEMORY CONTROLLER 55.
A seguito dell'attivazione dei comandi di scrittura, il TRANS CONTROLLER 51 trasferisce il contenuto del BUFFER di I/O 541a alla RAM 22 e completato il trasferimento invia alla CPU 21, per mezzo del filo 49, un segnale di Interrupt I/O per indicare il completamento del trasferimento.
Come sarà facilmente apprezzabile da parte di un tecnico del settore, grazie alla presente invenzione il trasferimento dei dati dal blocco hardware 41 alla RAM 22, non richiede l'intervento della CPU 21 e occupa il BUS 24 una sola volta e, pertanto, riduce, a parità di condizioni, il carico della CPU 21 e del 50%, rispetto all'arte nota, l'occupazione del BUS 24.
Per completezza di descrizione, viene qui riportato, inoltre, un esempio relativo alla determinazione degli indirizzi della RAM 22 su cui memorizzare i dati.
Tale operazione può essere condotta in una fase di inizializzazione o start up del circuito elettronico 101 prevedendo, ad esempio, che in tale fase sul DATA BUS 24c venga presentato al TRANS CONTROLLER 51 dalla CPU 21 un comando predefinito di inizializzazione e che a fronte di tale comando il TRANS CONTROLLER 51 legga dall'ADDRESS BUS 24a gli indirizzi della RAM 22 da utilizzare per leggere e scrivere da parte del blocco associato e li memorizzi nei registri interni del MEMORY CONTROLLER 55.
Il funzionamento del circuito elettronico 101 fin qui descritto è il seguente.
Nella fase di inizializzazione, la CPU 21 configura tutti i dispositivi presenti nel circuito elettronico, ad esempio i dispositivi 45a e 45b, inviando comandi specifici a ciascun dispositivo, 45a o 45b, e presentando sull'ADDRESS BUS 24 gli indirizzi della RAM 22 o dei blocchi che ciascun dispositivo deve utilizzare in fase di lettura e scrittura per scambiare i dati .
Nelle fasi operative, ad esempio di lettura dati da RAM 22, la CPU 21 tramite Interrupt I/O notifica ai dispositivi 45a o 45b che i dati sono disponibili in lettura a ciò che i dispositivi 45a o 45b prelevino dalla RAM 22, all'indirizzo determinato in fase di inizializzazione, i dati e li rendano disponibili ai rispettivi blocchi 41 o 61, senza alcun ulteriore interventi da parte della CPU 21.
Nelle fasi operative di scrittura dati sulla RAM 22, ad esempio, i dispositivi 45a o 45b occupano il BUS 24 e trasferiscono direttamente i dati dai rispettivi blocchi 41 o 61 alla RAM 22, agli indirizzi assegnati in fase di inizializzazione, e solo al termine del trasferimento segnalano, mediante Interrupt I/O, alla CPU 21 il completamento dell'operazione di scrittura.
Grazie ai dispositivi 45a e 45b, pertanto, le operazioni di lettura e scrittura da e verso RAM 22 avvengono in modo tale che :
- la CPU 21 esegue solo le funzioni di controllo del circuito elettronico 101 e non si preoccupa della specifica funzione del trasferimento dati, ad esempio, nella catena di trasmissione; il BUS 24 non viene occupato dalla CPU 21 nelle fasi operative di trasferimento dati, infatti in tali fasi la CPU 21 agisce solo sulla base di comandi di Interrupt I/O, e viene utilizzato dalla CPU 21 solo nel caso di comandi di inizializzazione o nel caso di comandi operativi particolari, quali, ad esempio, svuotamento buffer di uscita del blocco 41 o 61 senza prelevare dati da RAM 22, ecc
Nel caso di trasferimento diretto di dati da un primo blocco ad un secondo blocco circuitale, il circuito elettronico 101 viene configurato in modo che i dispositivi associati ai blocchi contengano indirizzi di lettura scrittura corrispondenti ai dispositivi su cui eseguire le operazioni di lettura o scrittura.
Ad esempio, in tale forma di esecuzione, la CPU 21 invia, nella fase di inizializzazione, al dispositivo 45a l'indirizzo del BUFFER di I/O del dispositivo 45b in modo che venga memorizzato nei registri interni del MEMORY CONTROLLER 55.
Nelle fasi operative, a fronte dei segnali di Interrupt I/O provenienti dalla CPU 21, il dispositivo 45a attiva il blocco hardware 41 ad eseguire le funzioni previste e, al completamento di tali funzioni, trasferisce direttamente i dati elaborati al dispositivo 45b; solo al termine del trasferimento, in accordo a tale forma di esecuzione, il dispositivo 45a notifica per mezzo di segnali di Interrupt I/O alla CPU 21 il completamento dell'attività del blocco 41 e del trasferimento .
Come risulterà evidente ad un tecnico del settore, in tale forma di realizzazione l'occupazione del BUS 24 e della CPU 21 e idotta più del 50% rispetto all'arte nota
La descrizione è stata effettuata prendendo a riferimento un primo dispositivo 41a, associato ad un blocco hardware 41, ed un secondo dispositivo 41b, associato ad un blocco firmware 61, e lo scambio di dati fra tali blocchi, ma risulterà evidente ad un tecnico del settore che le caratteristiche dell 1invenzione restano invariate nel caso in cui i dispositivi siano associati a blocchi omogenei, ad esempio, tutti di tipo hardware o di tipo firmware, e lo scambio di dati avvenga fra blocchi omogenei .
I dispositivi 45a e 45b sono stati descritti come distinti dai rispettivi blocchi circuitali 41 e 61 cui sono associati. Come risulterà chiaro ad un tecnico del settore, il dispositivo 45a, ad esempio, può essere realizzato per sintesi e integrato nel blocco hardware 41 in quanto costituito, come descritto, da elementi circuitali di cui sono facilmente reperibile i modelli in una libreria di componenti.
Analogamente, il dispositivo 45b, associato al blocco firmware 61, può essere realizzato sotto forma di firmware che realizzi l'architettura logica del dispositivo descritto, purché, come risulterà evidente ad un tecnico del settore, il microprocessore o DSP, utilizzato come blocco firmware, sia atto ad essere connesso direttamente al BUS 24 ed ai fili di controllo 68 e 69.
La descrizione è stata effettuata associando a ciascun blocco circuitale un rispettivo dispositivo, ma, come risulterà evidente ad un tecnico del settore, non è strettamente necessaria tale condizione se non per garantire che ciascun blocco possa trasferire i dati direttamente ad altri blocchi senza appesantire il carico della CPU e del BUS.
Modifiche ovvie o varianti sono possibili alla descrizione di cui sopra, nelle dimensioni, forme, materiali, componenti, elementi circuitali, collegamenti e contatti, così come nei dettagli della circuiteria e della costruzione illustrata e del metodo di operare senza allontanarsi dallo spirito dell'invenzione come precisato dalle rivendicazioni seguenti.

Claims (16)

  1. RIVENDICAZIONI 1. Metodo per trasferire dati in un circuito elettronico comprendente un'unità di controllo, un primo blocco circuitale atto a svolgere funzioni elaborative ed un secondo blocco circuitale avente mezzi di memoria ed atto a svolgere ulteriori funzioni elaborative, caratterizzato dalle fasi di intercettare per mezzo di un dispositivo di interfaccia associato a detto primo blocco determinati comandi di detta unità di controllo; attivare detto primo blocco a svolgere dette funzioni elaborative ed a generare dati elaborati; - trasferire in modo diretto da detto primo blocco a detto secondo blocco i dati elaborati sotto il controllo di detto dispositivo di interfaccia.
  2. 2. Metodo secondo la rivendicazione 1 caratterizzato dalla ulteriore fase di - trasmettere da parte di detto dispositivo di interfaccia a detta unità di controllo al completamento di detto trasferimento di dati elaborati segnali indicativi di detto completamento .
  3. 3 . Circuito elettronico comprendente - un'unità di controllo; - un primo blocco circuitale atto a svolgere prime funzioni elaborative; e - un secondo blocco circuitale avente mezzi di memoria ed atto a svolgere seconde funzioni elaborative; caratterizzato da - un dispositivo di interfaccia associato a detto primo blocco circuitale ed atto a intercettare determinati comandi di detta unità di controllo; - attivare dette prime funzioni elaborative per generare dati elaborati da trasferire a detto secondo blocco; e - gestire in modo diretto il trasferimento da detto primo blocco e detto secondo blocco dei dati elaborati.
  4. 4. Circuito elettronico secondo la rivendicazione 3 caratterizzato da ciò che detto dispositivo di interfaccia comprende - mezzi di gestione atti a gestire detti comandi di detta unità di controllo attivando sequenze di istruzioni determinate sulla base di detti determinati comandi.
  5. 5. Circuito elettronico secondo la rivendicazione 4, caratterizzato da ciò che detti mezzi di gestione comprendono - mezzi di memoria atti a memorizzare una pluralità di sequenze di istruzioni selettivamente attivabili.
  6. 6. Circuito elettronico secondo la rivendicazione da 3 a 5, caratterizzato da ciò che detto dispositivo di interfaccia comprende mezzi di controllo atti a controllare il trasferimento dei dati da detto dispositivo ad indirizzi predefiniti associati a detto secondo blocco circuitale.
  7. 7. Circuito elettronico secondo la rivendicazione da 3 a 6 caratterizzato da ciò che detto dispositivo di interfaccia comprende - mezzi di interfaccia blocco atti ad attivare detto primo blocco circuitale per svolgere dette prime funzioni elaborative .
  8. 8. Circuito elettronico secondo le rivendicazioni da 3 a 7, caratterizzato dal fatto di essere un sottosistema emulatore per emulare catene di trasmissione dati fra una pluralità di blocchi circuitali.
  9. 9. Circuito elettronico secondo la rivendicazione 8 caratterizzato da ciò che detti blocchi circuitali comprendono blocchi circuitali di tipo hardware e/o blocchi circuitali di tipo firmware.
  10. 10. Circuito elettronico secondo le rivendicazione 8 o 9, caratterizzato da ciò che ciascuno di detti blocchi circuitali è associato ad un corrispondente dispositivo di interfaccia.
  11. 11. Dispositivo di interfaccia da associare ad un blocco circuitale per trasferire dati da detto blocco circuitale ad un secondo blocco circuitale avente mezzi di memoria ed atto a svolgere funzioni elaborative caratterizzato da - mezzi di interfaccia collegati a detto blocco e ad un'unità di controllo ed atti a scambiare comandi con detta unità di controllo ed a controllare detto blocco circuitale a svolgere predeterminate funzioni elaborative ed a trasferire i dati elaborati in modo diretto da detto blocco a detto secondo blocco per mezzo di un determinato canale dati, controlli e comandi o BUS.
  12. 12. Dispositivo di interfaccia secondo la rivendicazione 11 caratterizzato da ciò che detti mezzi di interfaccia comprendono - mezzi di controllo interfaccia collegati al BUS e all'unità di controllo ed atti a intercettare comandi di detta unità di controllo e ad attivare sequenze di istruzioni predefinite sulla base di detti comandi.
  13. 13 . Dispositivo di interfaccia secondo la rivendicazione 12 caratterizzato da ciò che detti mezzi di controllo comprendono - mezzi di memoria atti a memorizzare una pluralità di sequenze di istruzioni selettivamente attivabili.
  14. 14. Dispositivo di interfaccia secondo la rivendicazione 11 o 12 caratterizzato da ciò che detti mezzi di interfaccia comprendono - mezzi di controllo memoria collegati a detto BUS ed atti a controllare il trasferimento di detti dati ad indirizzi predefiniti .
  15. 15. Dispositivo di interfaccia secondo la rivendicazione 14 caratterizzato da ciò che detti mezzi di controllo memoria comprendono mezzi di adattamento atti ad essere adattati a detto determinato BUS.
  16. 16. Dispositivo di interfaccia secondo la rivendicazione 11 o 12 o 14, caratterizzato da ciò che detti mezzi di interfaccia comprendono mezzi di interfaccia blocco collegati a detto blocco circuitale ed atti ad attivare detto blocco circuitale a svolgere dette predeterminate funzioni elaborative.
IT2001TO000838A 2001-08-30 2001-08-30 Metodo per trasferire dati in un circuito elettronico, circuito elettronico e dispositivo relativo. ITTO20010838A1 (it)

Priority Applications (10)

Application Number Priority Date Filing Date Title
IT2001TO000838A ITTO20010838A1 (it) 2001-08-30 2001-08-30 Metodo per trasferire dati in un circuito elettronico, circuito elettronico e dispositivo relativo.
US10/488,481 US20040243742A1 (en) 2001-08-30 2002-08-26 Method of transferring data in an electronic circuit, electronic circuit and relating device
JP2003523385A JP4551657B2 (ja) 2001-08-30 2002-08-26 電子回路におけるデータ転送方法、電子回路及び関連装置
DE60210637T DE60210637T2 (de) 2001-08-30 2002-08-26 Verfahren zum transferieren von daten in einer elektronischen schaltung, elektronische schaltung und zusammenhangeinrichtung
AT02777772T ATE323308T1 (de) 2001-08-30 2002-08-26 Verfahren zum transferieren von daten in einer elektronischen schaltung, elektronische schaltung und zusammenhangeinrichtung
CN028169026A CN1549975B (zh) 2001-08-30 2002-08-26 用于在电子电路中传送数据的方法及相关电子电路
EP02777772A EP1425673B1 (en) 2001-08-30 2002-08-26 Method of transferring data in an electronic circuit, electronic circuit and relating device
KR1020047002436A KR101020709B1 (ko) 2001-08-30 2002-08-26 전자 회로에서의 데이터 전송방법, 전자 회로 및 관련 장치
PCT/IT2002/000549 WO2003019395A1 (en) 2001-08-30 2002-08-26 Method of transferring data in an electronic circuit, electronic circuit and relating device
CA2457880A CA2457880C (en) 2001-08-30 2002-08-26 Method of transferring data in an electronic circuit, electronic circuit and relating device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT2001TO000838A ITTO20010838A1 (it) 2001-08-30 2001-08-30 Metodo per trasferire dati in un circuito elettronico, circuito elettronico e dispositivo relativo.

Publications (2)

Publication Number Publication Date
ITTO20010838A0 ITTO20010838A0 (it) 2001-08-30
ITTO20010838A1 true ITTO20010838A1 (it) 2003-03-02

Family

ID=11459164

Family Applications (1)

Application Number Title Priority Date Filing Date
IT2001TO000838A ITTO20010838A1 (it) 2001-08-30 2001-08-30 Metodo per trasferire dati in un circuito elettronico, circuito elettronico e dispositivo relativo.

Country Status (10)

Country Link
US (1) US20040243742A1 (it)
EP (1) EP1425673B1 (it)
JP (1) JP4551657B2 (it)
KR (1) KR101020709B1 (it)
CN (1) CN1549975B (it)
AT (1) ATE323308T1 (it)
CA (1) CA2457880C (it)
DE (1) DE60210637T2 (it)
IT (1) ITTO20010838A1 (it)
WO (1) WO2003019395A1 (it)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8051192B2 (en) * 2007-10-09 2011-11-01 Viasat, Inc. Methods and systems for presentation layer redirection for network optimization
CN110765044B (zh) * 2018-07-26 2021-02-23 展讯通信(上海)有限公司 数据包传输装置及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4495567A (en) * 1981-10-15 1985-01-22 Codex Corporation Multiprocessor/multimemory control system
JPS58169660A (ja) * 1982-03-31 1983-10-06 Panafacom Ltd マルチプロセツサシステムの構成方法
JPS59165119A (ja) * 1983-03-11 1984-09-18 Hitachi Ltd 入出力制御装置
JP2745521B2 (ja) * 1988-02-23 1998-04-28 株式会社日立製作所 フレーム送信方法
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
US5664142A (en) * 1990-10-01 1997-09-02 International Business Machines Corporation Chained DMA devices for crossing common buses
JP3460090B2 (ja) * 1992-04-23 2003-10-27 富士通株式会社 バス・インタフェース制御回路
JP3515142B2 (ja) * 1992-06-11 2004-04-05 セイコーエプソン株式会社 データ転送制御装置
US5835788A (en) * 1996-09-18 1998-11-10 Electronics For Imaging System for transferring input/output data independently through an input/output bus interface in response to programmable instructions stored in a program memory
JPH10154125A (ja) * 1996-11-26 1998-06-09 Toshiba Corp Dmaデータ転送装置および同装置を使用した動画像復号化装置並びにdmaデータ転送制御方法
US5890002A (en) * 1996-12-31 1999-03-30 Opti Inc. System and method for bus master emulation
JP3712842B2 (ja) * 1997-08-05 2005-11-02 株式会社リコー データ転送制御方法、データ転送制御装置及び情報記録媒体
US6119189A (en) * 1997-09-24 2000-09-12 Intel Corporation Bus master transactions on a low pin count bus
US6240476B1 (en) * 1998-08-21 2001-05-29 International Business Machines Corporation Dynamic allocation of bus master control lines to peripheral devices
US6434648B1 (en) * 1998-12-10 2002-08-13 Smart Modular Technologies, Inc. PCMCIA compatible memory card with serial communication interface
US6604159B1 (en) * 1999-08-12 2003-08-05 Mips Technologies, Inc. Data release to reduce latency in on-chip system bus
US6912611B2 (en) * 2001-04-30 2005-06-28 Advanced Micro Devices, Inc. Split transactional unidirectional bus architecture and method of operation

Also Published As

Publication number Publication date
CN1549975A (zh) 2004-11-24
KR20040040442A (ko) 2004-05-12
ITTO20010838A0 (it) 2001-08-30
KR101020709B1 (ko) 2011-03-09
JP4551657B2 (ja) 2010-09-29
DE60210637D1 (de) 2006-05-24
EP1425673A1 (en) 2004-06-09
WO2003019395A1 (en) 2003-03-06
EP1425673B1 (en) 2006-04-12
CA2457880A1 (en) 2003-03-06
JP2005501338A (ja) 2005-01-13
US20040243742A1 (en) 2004-12-02
ATE323308T1 (de) 2006-04-15
CA2457880C (en) 2012-04-10
DE60210637T2 (de) 2007-04-05
CN1549975B (zh) 2010-05-12

Similar Documents

Publication Publication Date Title
EP0569969B1 (en) Microcomputer having instruction memory storing instructions for reading out internal conditions
JP2003524969A5 (it)
US20150186067A1 (en) Spi interface enhanced flash chip and chip packaging method
JPS60256860A (ja) 論理集積回路
ITTO20010838A1 (it) Metodo per trasferire dati in un circuito elettronico, circuito elettronico e dispositivo relativo.
EA039007B1 (ru) Устройство прямого отображения адресов данных, располагающихся во внешнем последовательном пзу, в адресное пространство микропроцессорного ядра, компьютерная система и способ передачи данных
CN102446132B (zh) 一种模拟本地总线进行板级管理的方法和装置
CN101901801A (zh) 半导体芯片和包括该半导体芯片的半导体器件
JPH0353363A (ja) バスアーキテクチャ変換回路
CN110362526A (zh) Spi从机设备、存储和适配方法及计算机存储介质
JPH01145770A (ja) ベクトル処理装置
CN118035150B (zh) 外围器件互联扩展设备热插拔系统、方法、设备以及集群
KR100836807B1 (ko) 외부개발 단계 프로그램 메모리를 갖는 에이에스아이씨 마이크로 컴퓨터
IT202100029735A1 (it) Metodo per interfacciare una prima unità di lettura/scrittura dati ad una seconda unità di lettura/scrittura dati e relativi moduli di interfaccia
EP1201899B1 (en) A control device for a vehicle motor
EA038978B1 (ru) Устройство прямого отображения адресов данных, располагающихся во внешнем последовательном пзу, в адресное пространство микропроцессорного ядра, компьютерная система и способ передачи данных
JP2013131820A (ja) 半導体装置及び回路変更方法
JPH05334234A (ja) 高速dma転送装置
JPS62276663A (ja) プログラム転送方法
CN118210561A (zh) 一种fpga快速加载方法、装置、设备及介质
CN109408429A (zh) 一种低速接口的缓存方法与装置
JPS63231556A (ja) デジタル高速処理システム
JP2004046845A (ja) システム
JPH0533413B2 (it)
JPS6184706A (ja) プログラマブルコントロ−ラ