[go: up one dir, main page]

ITMI981564A1 - Memoria non volatile in grado di eseguire un programma autonomamente - Google Patents

Memoria non volatile in grado di eseguire un programma autonomamente Download PDF

Info

Publication number
ITMI981564A1
ITMI981564A1 IT98MI001564A ITMI981564A ITMI981564A1 IT MI981564 A1 ITMI981564 A1 IT MI981564A1 IT 98MI001564 A IT98MI001564 A IT 98MI001564A IT MI981564 A ITMI981564 A IT MI981564A IT MI981564 A1 ITMI981564 A1 IT MI981564A1
Authority
IT
Italy
Prior art keywords
block
memory
matrix
signals
address
Prior art date
Application number
IT98MI001564A
Other languages
English (en)
Inventor
Giovanni Campardo
Original Assignee
St Microelectronics Srl
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 St Microelectronics Srl filed Critical St Microelectronics Srl
Priority to IT98MI001564A priority Critical patent/ITMI981564A1/it
Priority to EP99202169A priority patent/EP0973168A1/en
Priority to US09/349,702 priority patent/US6587914B2/en
Publication of ITMI981564A1 publication Critical patent/ITMI981564A1/it

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Saccharide Compounds (AREA)

Description

DESCRIZIONE
dell’invenzione industriale dal titolo:
“Memoria non volatile in grado di eseguire un programma autonomamente.”
La presente invenzione si riferisce a una memoria non volatile in grado di eseguire un programma indipendentemente dal microprocessore.
Le famiglie delle memorie non volatili, tra cui le EEPROM e le Flash EEPROM, hanno in comune una proprietà fondamentale: tutte effettuano una conversione di codici binari. Tale conversione avviene decodificando dapprima il codice che si presenta in ingresso, ottenendo un numero di linee di segnale distinte, risultanti da tutte le possibili combinazioni dei bit del codice stesso; queste linee vengono poi codificate nella parola di uscita desiderata mediante un circuito chiamato per Γ appunto codificatore: la matrice di memoria produce pertanto la relazione funzionale voluta tra ingresso e uscita.
Da questo punto di vista è ragionevole classificare una matrice non volatile come un circuito combinatorio, e non sequenziale: le uscite dipendono infatti unicamente dagli ingressi attuali, e non dalla storia precedente del circuito. Ciò che viene memorizzato è la relazione funzionale tra ingressi e uscite.
Nei dispositivi elettronici comprendenti microcomputer, cioè computer in cui è presente un microprocessore, la memoria non volatile è destinata a contenere il programma che deve essere eseguito dal microprocessore.
Il microprocessore è un circuito integrato che contiene un’unità di controllo ed un’unità aritmetica- logica, e il cui stato interno è di solito controllabile dall’esterno mediante una memoria fissa programmabile.
Il microprocessore è un’unità molto complessa, in grado di eseguire programmi che introducono operazioni di calcolo, di confronto di dati, di temporizzazione ed altre operazioni di solito indispensabili negli attuali dispositivi elettronici.
La struttura di un microcomputer consiste essenzialmente di una unità centrale di processo (microprocessore), di una memoria e di dispositivi di ingresso e di uscita. Il programma che deve essere eseguito dal microprocessore viene memorizzato in una memoria non volatile. Durante il funzionamento il microprocessore estrae le istruzioni dalla memoria, eseguendole in successione ed elaborando pertanto i dati secondo il programma. Nel corso dell’elaborazione i risultati della stessa possono essere fomiti all’esterno mediante i dispositivi di uscita. La memoria ha quindi lo scopo di conservare il programma, ossia le istruzioni ed i dati, necessari al funzionamento del microprocessore.
In figura 1 è rappresentato schematicamente un diagramma a blocchi di un microcomputer in cui è presente una memoria non volatile 1 che contiene il programma di controllo del sistema, un microprocessore 2, una memoria RAM 3, che memorizza temporaneamente istruzioni e dati, questi ultimi scritti in locazioni di memoria, ognuna individuata da un indirizzo, e un’unità di ingresso e uscita I/O 4 che riceve segnali 5 di ingresso e di uscita. I vari elementi sono collegati da un bus dei dati 6, che porta i dati fra le diverse sezioni del microcomputer ed è bidirezionale, e da un bus degli indirizzi e di controllo 7, unidirezionale e atto a trasmettere l’indirizzo della locazione di memoria su cui si vuole leggere o scrivere, o del dispositivo di ingresso o uscita che si vuole attivare, e a portare i segnali di controllo necessari ad esempio per abilitare la memoria ad operare in lettura o scrittura o per abilitare i circuiti di interfaccia ingresso-uscita.
In figura 2 è mostrata schematicamente la struttura funzionale della memoria non volatile 1 di figura 1: i segnali di ingresso 8, comprendenti segnali di controllo e di indirizzo, vengono inviati, attraverso buffer di ingresso 10, ad una matrice di celle di memoria 11 che li decodifica ed invia relativi segnali codificati a buffer di uscita 12 collegati al bus dati 6.
Gli elementi rappresentati in figura 2 sono presenti in qualsiasi memoria non volatile e ne costituiscono la struttura fondamentale, anche se generalmente sono previsti altri blocchi funzionali, come ad esempio circuiti di controllo o di verifica.
In molte applicazioni di elettronica, la potenza di calcolo, indispensabile ad esempio in un computer, non risulta necessaria e Fesecuzione di un programma si riduce alla semplice esecuzione in modo sequenziale delle istruzioni contenute nella memoria. I distributori di bevande, ad esempio, eseguono un programma di tipo sequenziale che utilizza in realtà poche istruzioni, svolgendo solo una serie di operazioni temporizzate che, in linea di principio, non richiedono l’utilizzo di un microprocessore. Altri esempi sono fomiti dal settore degli elettrodomestici, come lavastoviglie, lavatrici o frigoriferi, che svolgono dei cicli identici nel tempo che non necessitano di una grande flessibilità.
In vista dello stato della tecnica descritto, scopo della presente invenzione è quello di fornire alla memoria non volatile alcune funzionalità che le permettano di comportarsi come una macchina RISC (Reduced Instruction Set Computer), eseguendo un limitato set di istruzioni che la rendano in definitiva una macchina sequenziale. Questa intelligenza aggiuntiva della memoria non volatile non la pone al pari di un microcontrollore però potrebbe consentire alla memoria stessa di eseguire dei compiti semplici lasciando al microprocessore i compiti più difficili, alleggerendo in pratica il suo lavoro.
Tale memoria consentirebbe inoltre, qualora la particolare applicazione lo renda possibile, di evitare l’impiego di un microprocessore, con una significativa riduzione dei costi.
In accordo con la presente invenzione, tale scopo viene raggiunto mediante un dispositivo di memoria non volatile a semiconduttore comprendente un blocco di buffer degli indirizzi, una matrice di celle di memoria e un blocco di buffer di uscita, detto blocco di buffer degli indirizzi ricevendo segnali di ingresso esterni al dispositivo di memoria, che in una prima modalità operativa sono controllati da dispositivi esterni al dispositivo di memoria, e trasmettendo segnali a detta matrice di celle di memoria, atta a decodificare detti segnali ricevuti e a trasmettere a sua volta segnali decodificati in uscita mediante detto blocco di buffer di uscita, caratterizzato dal fatto di comprendere un blocco di comando, attivabile mediante un segnale di controllo esterno che, una volta attivato, pone il dispositivo di memoria in una seconda modalità operativa nella quale detto blocco di comando riceve almeno una parte di detti segnali in uscita da detta matrice di celle di memoria e, dopo averli elaborati, trasmette segnali di indirizzo interni a detto blocco di buffer degli indirizzi, così da ottenere una reazione all’ interno di detto dispositivo di memoria in grado di rendere lo stesso capace di eseguire una successione di istruzioni memorizzate in detta matrice di celle di memoria in modo autonomo.
Le caratteristiche ed i vantaggi della presente invenzione risulteranno evidenti dalla seguente descrizione dettagliata di una sua forma di realizzazione pratica, illustrata a titolo di esempio non limitativo negli uniti disegni, nei quali:
la figura 1 mostra schematicamente un diagramma a blocchi di un microcomputer;
la figura 2 rappresenta in modo schematico la struttura funzionale di una memoria non volatile;
la figura 3 mostra schematicamente una struttura funzionale di una memoria non volatile, secondo la presente invenzione;
la figura 4 rappresenta una struttura funzionale della stessa memoria non volatile di figura 3, ampliata in alcune sue parti;
la figura 5 mostra in una tabella i bit utilizzati per l’esecuzione del codice, in un esempio di modalità attiva della memoria;
la figura 6 rappresenta in una tabella un possibile set di istruzioni in accordo con i bit della figura 5.
In figura 3 è mostrata schematicamente ima struttura funzionale della memoria non volatile 1 di figura 1, modificata in accordo alla presente invenzione. Con 8 è indicato un insieme di linee di segnale comprendenti segnali di indirizzo 8’ e generici segnali di controllo. I segnali di indirizzo 8’, attraverso buffer di ingresso 10, vengono inviati alla matrice 11. Con 11 è schematicamente indicata una matrice di celle di memoria, nonché circuiti per Γ indirizzamento delle celle e per la lettura delle stesse. La matrice 11 fornisce in uscita un insieme di segnali 14 che recano un codice funzione del codice presente sui segnali di indirizzo 8’. Almeno una parte 14’ dei segnali in uscita 14 dalla matrice 11 viene diretta ad un’unità di comando 13, che comprende generalmente un interprete di comandi, un contatore di programma e un timer intemo, in modo che li elabori e quindi trasmetta un insieme di segnali 15 ai buffer degli indirizzi 10. In questo modo si ottiene una reazione nel dispositivo di memoria che lo rende autonomo e in grado di eseguire un predefinito set di istruzioni memorizzate nella matrice 11. I segnali di ingresso 8 giungono, tutti o in parte, direttamente anche al blocco di comando 13, per il suo azionamento e controllo, ed inoltre possono essere previsti anche segnali esterni 16, che alimentano direttamente il blocco 13.
Per realizzare questo tipo di funzionalità della memoria, è ad esempio necessario che sia attivato un pin di controllo esterno, compreso ad esempio fra i segnali esterni 16, così da passare dalla modalità “passiva”, in cui la memoria dipende dal microprocessore, a quella “attiva” in cui la memoria è autonoma.
In figura 4 è rappresentato uno schema a blocchi funzionale analogo alla figura 3, mostrante una memoria non volatile di tipo Flash, in cui elementi già presenti vengono utilizzati in modo da costituire il blocco di comando 13 di figura 3.
In particolare, tra la matrice Il e i buffer delle uscite 12 è previsto un circuito di latch 17 che memorizza temporaneamente le uscite della matrice 1 1 e, durante la funzionalità attiva della memoria, le trasmette, attraverso una linea di reazione 20, ad un interprete dei comandi 18, collegato a tutte le unità presenti nella memoria; quest’ultimo provvede all’elaborazione dei suddetti segnali 20, funzionando come un microprocessore, ed invia opportuni comandi 21 ai buffer degli indirizzi 10, in modo da avere una retroazione attiva dell’intero circuito, e far eseguire una determinata istruzione alla memoria, funzionante come una macchina sequenziale.
L’interprete dei comandi 18 riceve anche segnali di ingresso 8 e segnali di controllo esterni 16, tra cui un segnale di controllo per razionamento della modalità attiva ed un segnale di clock, ed interagisce con un contatore interno 19, che può essere usato per tenere conto delle operazioni svolte e per calcolare il corretto indirizzo in memoria della successiva istruzione che deve essere eseguita, quando l’attuale è stata completata.
Le uscite 9 della memoria possono pilotare, mediante multiplexer, gli eventuali dispositivi attuatoli, senza la necessità di passare attraverso il microprocessore.
In figura 4 è anche mostrata la possibilità di comprendere un collegamento diretto 22 tra i buffer degli indirizzi 10 e i buffer delle uscite 12, in modo che il microprocessore utilizzi la memoria Flash come un dispositivo di connessione estesa di I/O, inviando direttamente gli ingressi alle uscite e sfruttando cosi i buffer di uscita 12 della memoria come driver di linee di segnale.
Una volta attivato il pin di azionamento esterno, la memoria passa in modalità attiva ed i segnali 14 in uscita dalla matrice 11, che nel particolare esempio costituiscono un insieme di 16 linee, vengono memorizzati mediante il circuito di latch 17, in modo da essere trasmessi alla CUI 18 e fungere da istruzione del programma da eseguire. Nel caso la CUI 18 elabori codici di 32 bit, come supposto nel particolare esempio, il circuito di latch 17 memorizza i 16 bit in uscita dalla matrice 11 in due cicli successivi, così da fornire alla CUI 18 una microi struzione con un numero opportuno di bit. Ovviamente si può pensare di utilizzare microistruzioni formate da un numero qualsiasi di bit, prevedendo opportuni circuiti di latch in grado di memorizzare tali codici in più cicli successivi prima di trasmetterli alla CUI per l’elaborazione.
La CUI 18 elabora tale codice ed invia opportuni segnali di indirizzo interni ai buffer degli indirizzi 10 e da questi alla matrice 11, che li decodifica e pone sulle linee di uscita 14 un codice corrispondente. Tale codice può essere trasferito, attraverso i buffer delle uscite 12, ai segnali di uscita 9, ad esempio per pilotare eventuali dispositivi attuatori esterni senza passare per il microprocessore. In alternativa tale codice può essere interpretato dalla CUI 18 come nuova microistruzione.
Nella tabella di figura 5 vengono mostrati i bit utilizzati per l’esecuzione del codice da parte della CUI, in un esempio in cui la memoria è posta in modalità attiva per eseguire un programma in maniera autonoma. I singoli bit hanno il seguente significato:
C1-C4: i primi quattro bit sono quelli deputati ad identificare il tipo di istruzione; quattro bit significano sedici possibili istruzioni eseguibili e non possono assumere altri significati nelle differenti istruzioni;
00-015: sono sedici bit della microistruzione che in particolari tipi di istruzione contengono il dato da caricare sulle sedici uscite 9, ogni uscita assumendo lo stesso valore del bit corrispondente; ckO-ckl 1: rappresentano il valore, codificato in binario, prescelto per una temporizzazione; tale valore, moltiplicato per il periodo del segnale di clock fornito dall’esterno, individua un tempo di attesa compreso fra 1 e 4096 volte il periodo dei segnale di clock esterno (per un’attesa pari a 4096 volte tale periodo, ad esempio, si dovrà posizionare tutti i bit ck a “1”);
rl-r4: sono l’espressione codificata delle sedici uscite, quando si desideri indirizzarne solamente una;
in0-inl8: sono i 19 bit della microistruzione elaborata dalla CUI 18 che, in alcuni tipi di microistruzione, assumono il significato di codice di confronto con i segnali di indirizzo 8’ provenienti dall 'esterno della memoria;
S: è un bit che permette di decidere se la configurazione scelta è attiva a “1” o a “0”;
A0-A18: sono i 19 bit della microistruzione che, in alcuni tipi di microistruzione, assumono il significato di nuovo indirizzo da fornire alla matrice di memoria 11 per prelevare la successiva microistruzione.
In tabella di figura 6 è mostrato un possibile set di istruzioni in accordo con i bit della tabella di figura 5 (con X è indicato un bit non influente), ed ognuna delle sedici istruzioni ha il seguente significato:
1. è l’istruzione NOP, non esegue nulla;
2. le sedici uscite 9 vengono caricate con il valore assegnato, specificato nella micro istruzione ossia 00-015;
3. viene caricata la sola uscita delle sedici uscite 9 corrispondente al valore binario di rl-r4;
4. viene caricata la sola uscita corrispondente all’espressione di rl-r4, ma solo quando esternamente alla memoria viene posto ad “1” il segnale di indirizzo esterno 8’ corrispondente à quello, fra i bit inO-inl8 della microistruzione, che è posto ad “1”; ad esempio se è in7 = “1”, il caricamento dell’uscita 9 corrispondente al valore binario di rl-r4 ha luogo solo quando l’ottavo bit del segnale di indirizzo esterno 8’ è posto ad “1”; se più di uno fra i bit in0-inl8 della microistruzione risultano ad “1”, il caricamento dell’uscita codificata in rl-r4 avviene solo quando è soddisfatto l’operatore logico OR dei corrispondenti segnali di indirizzo esterni 8’;
5. è un’istruzione identica alla precedente tranne per il fatto che deve essere soddisfatto l’operatore logico AND dei segnali di indirizzo esterni 8’, quando più bit in0-inl8 della microistruzione risultano posti ad “1”;
6. viene caricata la sola uscita data da rl-r4 quando esternamente alla memoria viene posto ad “1” il segnale di indirizzo che corrisponde a quello, fra i bit inO-inll della microistruzione, che è a “1”, oppure alla scadenza di un tempo impostato attraverso il valore specificato nei bit ckO-ckl 1 della microistruzione (se più di uno fra i bit inO-inl 1 sono ad “1” deve essere soddisfatto l’OR dei corrispondenti segnali di indirizzo 8’);
7. è un’istruzione identica alla precedente tranne per il fatto che deve essere soddisfatto l’operatore logico AND dei segnali di indirizzo 8’, quando più bit inO-inl 1 della microistruzione risultano posti ad “1”; 8. è un’istruzione di salto incondizionato: il programma viene diretto all’indirizzo dato dai bit A0-A18 della microistruzione;
9. il programma viene diretto all’indirizzo dato da A0-A18 all’arrivo del segnale logico su un pin esterno, con S posso scegliere se sarà attivo basso o alto;
10. il programma viene diretto all’indirizzo dato da A0-A18 aH’amvo del segnale logico su un pin esterno, con S posso scegliere se sarà attivo basso o alto, o perché è terminato un tempo impostato con i bit ckO-ck7 della microistruzione;
11. è un'istruzione di attesa: il programma salta all’indirizzo successivo allo scadere di un tempo impostato con i bit ckO-ckl 1;
12. come la precedente, è un'istruzione di attesa: il programma salta all’indirizzo successivo allo scadere di un tempo impostato con i bit ckO-ckl 1 o perché è airivato il segnale di indirizzo 8’ indicato dai bit inO-inl 1 o l’AND dei segnali di indirizzo indicati;
13. viene inviata serialmente una stringa di dati, specificata nei bit OO-015 della microistruzione e sincrona con il segnale di clock, su un pin esterno (utile, ad esempio, per il collegamento ad un display); questa operazione avviene indipendentemente dalle successive e, ad ogni colpo di clock viene trasmesso un singolo bit OO, 01. 015;
14. l’indirizzo specificato dai bit A0-A18 viene caricato in un eventuale registro RAM o in una batteria di latch da aggiungere alla memoria; 15. viene prelevato dal registro RAM l’indirizzo indicato dai bit A0-A18, che diventa il successivo da eseguire;
16. è l’istruzione END, che ferma il programma e la memoria Flash toma in modalità passiva o punta ad un indirizzo prefissato che contiene un programma di attesa.
Altri codici che possono risultare particolarmente interessanti sono, ad esempio, un comando che possa far diventare la memoria Flash un I/O expander in modo che il microprocessore utilizzi la Flash solamente come un banco di buffer di uscita; un altro comando interessante potrebbe permettere al microprocessore di caricare il registro RAM delle istruzioni 14 e 15, interrompendo il programma della memoria Flash e successivamente facendolo ripartire all’indirizzo prescelto.
Chiaramente le suddette istruzioni sono solamente un esempio di implementazione e non esauriscono tutte le possibilità necessarie a far funzionare la memoria come una macchina sequenziale, ma già questo set di istruzione potrebbe sollevare il microprocessore dall’eseguire una quantità di lavoro che in alcune applicazioni può essere molto rilevante.

Claims (7)

  1. RIVENDICAZIONI 1. Dispositivo di memoria non volatile a semiconduttore comprendente un blocco di buffer degli indirizzi (10), una matrice di celle di memoria (11) e un blocco di buffer di uscita (12), detto blocco di buffer degli indirizzi (10) ricevendo segnali di ingresso (8) esterni al dispositivo di memoria, che in una prima modalità operativa sono controllati da dispositivi esterni al dispositivo di memoria, e trasmettendo segnali a detta matrice di celle di memoria (11), atta a decodificare detti segnali ricevuti e a trasmettere a sua volta segnali decodificati in uscita mediante detto blocco di buffer di uscita (12), caratterizzato dal fatto di comprendere un blocco di comando (13; 17, 18, 19), attivabile mediante un segnale di controllo esterno (16) che, una volta attivato, pone il dispositivo di memoria in una seconda modalità operativa nella quale detto blocco di comando (13;17,18,19) riceve almeno una parte di detti segnali in uscita da detta matrice di celle di memoria (11) e, dopo averli elaborati, trasmette segnali di indirizzo intemi (15) a detto blocco di buffer degli indirizzi (10), così da ottenere una reazione all’ interno di detto dispositivo di memoria in grado di rendere lo stesso capace di eseguire una successione di istruzioni memorizzate in detta matrice di celle di memoria (1 1) in modo autonomo.
  2. 2. Dispositivo secondo la rivendicazione 1, caratterizzato dal fatto di comprendere un segnale di clock esterno (16) atto a scandire tutti i tempi interni durante il funzionamento autonomo di detto dispositivo.
  3. 3. Dispositivo secondo una qualsiasi delle rivendicazioni precedenti, caratterizzato dal fatto che detto blocco di comando (13; 17, 18,19) comprende un interprete dei comandi (18) che riceve detti segnali di uscita da detta matrice di celle di memoria (11), è attivabile mediante detto segnale di controllo esterno (16), riceve detti segnali di ingresso (8) ed è collegato biunivocamente con detto blocco buffer degli indirizzi (10).
  4. 4. Dispositivo secondo una qualsiasi delle rivendicazioni precedenti, caratterizzato dal fatto che detto blocco di comando (13; 17,18,19) comprende un contatore intemo (19), atto a determinare gli indirizzi di dette istruzioni nella matrice di celle di memoria (11).
  5. 5. Dispositivo secondo la rivendicazione 4, caratterizzato dal fatto che detto interprete dei comandi (18) è collegato biunivocamente con detto contatore interno (19).
  6. 6. Dispositivo secondo la rivendicazione 5, caratterizzato dal fatto che tra detta matrice di celle di memoria (11) e detto blocco di buffer di uscita (12) è presente un blocco di latch (17), atto a trasmettere detti segnali in uscita da detta matrice di celle di memoria (11) a detto interprete dei comandi (18).
  7. 7. Dispositivo secondo una qualsiasi delle rivendicazioni precedenti, caratterizzato dal fatto che è presente un collegamento diretto (22) tra detto blocco di buffer degli indirizzi (10) e detto blocco di buffer di uscita (12), in modo da utilizzare detto dispositivo come un dispositivo di connessione estesa di I/O.
IT98MI001564A 1998-07-09 1998-07-09 Memoria non volatile in grado di eseguire un programma autonomamente ITMI981564A1 (it)

Priority Applications (3)

Application Number Priority Date Filing Date Title
IT98MI001564A ITMI981564A1 (it) 1998-07-09 1998-07-09 Memoria non volatile in grado di eseguire un programma autonomamente
EP99202169A EP0973168A1 (en) 1998-07-09 1999-07-02 Non-volatile memory capable of autonomously executing a program
US09/349,702 US6587914B2 (en) 1998-07-09 1999-07-08 Non-volatile memory capable of autonomously executing a program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT98MI001564A ITMI981564A1 (it) 1998-07-09 1998-07-09 Memoria non volatile in grado di eseguire un programma autonomamente

Publications (1)

Publication Number Publication Date
ITMI981564A1 true ITMI981564A1 (it) 2000-01-09

Family

ID=11380398

Family Applications (1)

Application Number Title Priority Date Filing Date
IT98MI001564A ITMI981564A1 (it) 1998-07-09 1998-07-09 Memoria non volatile in grado di eseguire un programma autonomamente

Country Status (3)

Country Link
US (1) US6587914B2 (it)
EP (1) EP0973168A1 (it)
IT (1) ITMI981564A1 (it)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11436461B2 (en) 2005-02-22 2022-09-06 Kepler Computing Inc. Mobile phone with magnetic card emulation

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070198812A1 (en) * 2005-09-27 2007-08-23 Ibm Corporation Method and apparatus for issuing instructions from an issue queue including a main issue queue array and an auxiliary issue queue array in an information handling system
US7350056B2 (en) * 2005-09-27 2008-03-25 International Business Machines Corporation Method and apparatus for issuing instructions from an issue queue in an information handling system
JP4984666B2 (ja) * 2006-06-12 2012-07-25 ソニー株式会社 不揮発性メモリ
US7991158B2 (en) 2006-12-13 2011-08-02 Tyfone, Inc. Secure messaging
US20080244208A1 (en) * 2007-03-30 2008-10-02 Narendra Siva G Memory card hidden command protocol
US9741027B2 (en) * 2007-12-14 2017-08-22 Tyfone, Inc. Memory card based contactless devices
US8451122B2 (en) 2008-08-08 2013-05-28 Tyfone, Inc. Smartcard performance enhancement circuits and systems
US20100033310A1 (en) * 2008-08-08 2010-02-11 Narendra Siva G Power negotation for small rfid card
US7961101B2 (en) 2008-08-08 2011-06-14 Tyfone, Inc. Small RFID card with integrated inductive element
US12147863B2 (en) 2008-08-08 2024-11-19 Icashe, Inc. Method and apparatus for transmitting data via NFC for mobile applications including mobile payments and ticketing
EP2401708A4 (en) * 2009-02-24 2012-08-15 Tyfone Inc CONTACTLESS DEVICE WITH MINIATURIZED ANTENNA
US9177646B2 (en) 2013-05-06 2015-11-03 International Business Machines Corporation Implementing computational memory from content-addressable memory
US9785545B2 (en) * 2013-07-15 2017-10-10 Cnex Labs, Inc. Method and apparatus for providing dual memory access to non-volatile memory
JP2018514868A (ja) 2015-04-30 2018-06-07 マイクロチップ テクノロジー インコーポレイテッドMicrochip Technology Incorporated 改良された命令セットを有する中央処理ユニット
EP3115109A1 (en) * 2015-07-06 2017-01-11 Base4 Innovation Limited Droplet sequencing device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0738187B2 (ja) * 1984-03-23 1995-04-26 株式会社日立製作所 Lsiに構成されたマイクロコンピュータ
US5444665A (en) * 1985-06-17 1995-08-22 Hitachi, Ltd. Semiconductor memory device
US5165023A (en) * 1986-12-17 1992-11-17 Massachusetts Institute Of Technology Parallel processing system with processor array and network communications system for transmitting messages of variable length
US5546343A (en) * 1990-10-18 1996-08-13 Elliott; Duncan G. Method and apparatus for a single instruction operating multiple processors on a memory chip
US5325500A (en) * 1990-12-14 1994-06-28 Xerox Corporation Parallel processing units on a substrate, each including a column of memory
JPH04248642A (ja) * 1991-01-18 1992-09-04 Kenneth W Iobst メモリ集積回路のpimチップおよびその制御方法
US5687345A (en) * 1992-03-17 1997-11-11 Hitachi, Ltd. Microcomputer having CPU and built-in flash memory that is rewritable under control of the CPU analyzing a command supplied from an external device
TW231343B (it) * 1992-03-17 1994-10-01 Hitachi Seisakusyo Kk
EP0584783A3 (en) * 1992-08-25 1994-06-22 Texas Instruments Inc Method and apparatus for improved processing
TW260788B (it) * 1993-09-01 1995-10-21 Philips Electronics Nv
JPH0845269A (ja) * 1994-07-27 1996-02-16 Hitachi Ltd 半導体記憶装置
DE69521203T2 (de) * 1995-07-31 2006-01-12 Stmicroelectronics S.R.L., Agrate Brianza Flash-EEPROM mit gesteuerter Entladungszeit der Wortleitungs- und Sourcespannungen nach der Löschung
US6185704B1 (en) * 1997-04-11 2001-02-06 Texas Instruments Incorporated System signaling schemes for processor and memory module
US6026478A (en) * 1997-08-01 2000-02-15 Micron Technology, Inc. Split embedded DRAM processor
US6023761A (en) * 1997-08-13 2000-02-08 Vlsi Technology, Inc. Method and system for using decompression on compressed software stored in non-volatile memory of an embedded computer system to yield decompressed software including initialized variables for a runtime environment
US6141705A (en) * 1998-06-12 2000-10-31 Microsoft Corporation System for querying a peripheral device to determine its processing capabilities and then offloading specific processing tasks from a host to the peripheral device when needed

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11436461B2 (en) 2005-02-22 2022-09-06 Kepler Computing Inc. Mobile phone with magnetic card emulation
US11720777B2 (en) 2005-02-22 2023-08-08 Icashe, Inc. Mobile phone with magnetic card emulation
US12223378B2 (en) 2005-02-22 2025-02-11 Icashe, Inc. Electronic transaction mechanism

Also Published As

Publication number Publication date
US20020007434A1 (en) 2002-01-17
US6587914B2 (en) 2003-07-01
EP0973168A1 (en) 2000-01-19

Similar Documents

Publication Publication Date Title
ITMI981564A1 (it) Memoria non volatile in grado di eseguire un programma autonomamente
US8429379B2 (en) Reconfigurable microprocessor configured with multiple caches and configured with persistent finite state machines from pre-compiled machine code instruction sequences
JPS6044699B2 (ja) 特殊アドレス発生装置
US20190189166A1 (en) System comprising a memory capable of implementing calculation operations
JPS589454B2 (ja) プログラマブル制御ラツチ機構
JPH01239639A (ja) データ処理装置にある命令バツフア記憶装置の回路装置及び制御方法
CN101281513A (zh) 基于Avalon总线的流处理器IP核
CN100538623C (zh) 一种8位微控制器
JP2006294005A (ja) プログラマブル・コントローラ
US4101967A (en) Single bit logic microprocessor
US8200943B2 (en) Microprocessor
EP1408405A1 (en) "A reconfigurable control structure for CPUs and method of operating same"
JP5157129B2 (ja) 情報処理装置およびその回路設計方法
US5604876A (en) Apparatus for handling differing data length instructions using either directly specified or indirectly specified data lengths
US7159057B2 (en) Evaluation chip
US20150301935A1 (en) Microcomputer and nonvolatile semiconductor device
CN110045989B (zh) 一种动态切换式低功耗处理器
US6405301B1 (en) Parallel data processing
JPH07192483A (ja) Eeprom、eepromの書き込み制御方法及びicカード
JPS6378235A (ja) マイクロコンピユ−タ
TWI683202B (zh) 數位波形訊號產生裝置
JP2006293741A (ja) プロセッサ
JP3981373B2 (ja) 半導体集積回路
KR100261175B1 (ko) 인터럽트 회로
KR920002247B1 (ko) 컴퓨터 시스템에서의 필드변환방법 및 회로