ITMI20120944A1 - Unità di controllo di circuiti di alimentazione per uno o più punti di carico di un sistema elettronico con nvm esterna di personalizzazione - Google Patents
Unità di controllo di circuiti di alimentazione per uno o più punti di carico di un sistema elettronico con nvm esterna di personalizzazione Download PDFInfo
- Publication number
- ITMI20120944A1 ITMI20120944A1 IT000944A ITMI20120944A ITMI20120944A1 IT MI20120944 A1 ITMI20120944 A1 IT MI20120944A1 IT 000944 A IT000944 A IT 000944A IT MI20120944 A ITMI20120944 A IT MI20120944A IT MI20120944 A1 ITMI20120944 A1 IT MI20120944A1
- Authority
- IT
- Italy
- Prior art keywords
- pmu
- program
- memory
- rom
- data
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims description 31
- 239000004606 Fillers/Extenders Substances 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 7
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 230000001105 regulatory effect Effects 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 12
- 238000000034 method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000009191 jumping Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02J—CIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
- H02J1/00—Circuit arrangements for dc mains or dc distribution networks
- H02J1/08—Three-wire systems; Systems having more than three wires
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Power Sources (AREA)
Description
UNITÀ DI CONTROLLO DI CIRCUITI DI ALIMENTAZIONE PER UNO O PIÙ PUNTI DI CARICO DI UN SISTEMA ELETTRONICO CON NVM ESTERNA DI PERSONALIZZAZIONE
BACKGROUND
Campo tecnico
La presente descrizione concerne in generale i sistemi di controllo della potenza di alimentazione di complessi sistemi elettronici e in particolare un metodo per controllare una pluralità di regolatori di tensione per altrettanti punti di carico del sistema.
Discussione della tecnica anteriore
Un sistema digitale di gestione della potenza di alimentazione di complessi sistemi elettronici brevemente PMU, acronimo per Power Management Unit, è un’ unità digitale atta a gestire la programmazione, il controllo e la telemetria di numerosi regolatori di tensione di punti di carico del sistema elettronico (brevemente POL, acronimo per Point Of Load) ad essa associati. Ciascun regolatore di tensione o POL utilizza una interfaccia digitale seriale, almeno un segnale di sincronismo, detto Clock, e un segnale di trasporto dei dati, detto Data, necessari alla PMU per adempiere ai propri compiti.
L’ implementazione della PMU avviene oggi come descrizione di comandi (COMMAND) riferiti ad un particolare POL identificato con un indirizzo (ADDRESS). L’interfaccia digitale seriale può essere proprietaria (AMD e Intel ne hanno definita una) oppure aderente ad uno standard che ne specifica le caratteristiche elettriche (SMBUS.org). La descrizione dei comandi può essere proprietaria dipendente dal vendor oppure aderente ad uno standard intemazionale (PMBUS.org).
Tuttavia gli sviluppatori di Server che peraltro hanno partecipato alla definizione dello standard, lo considerano un nucleo centrale di comandi e funzioni considerate indispendabili ma non sufficienti alle loro specifiche e quindi aggiungono all’elenco dei comandi del PMBUS.org dei loro comandi proprietari specifici dei loro sistemi e del loro know-how.
Comunemente viene chiamata unità di Power Management (PMU) l’insieme dei comandi e delle funzioni aderente allo standard Intemazionale PMBUS.org e dei comandi specifici aggiunti. La trasmissione dei comandi avviene come da protocollo PMBUS (e basato sul layer fisico dello standard SMBUS.org): ad ogni comando inviato dal System Controller corrisponde una procedura di esecuzione del comando stesso. Per offrire agli sviluppatori di Server la possibilità di estendere i comandi PMBUS, la protezione del loro know-how e la flessibilità di sviluppare in modo software i requisiti particolari del proprio sistema, la soluzione adottata è quella di passare da un’unità di Power Management (PMU) rigida e di tipo H/W ad un’unità basata su una architettura a microprocessore. Tuttavia, per motivi di costo, la PMU usa processi produttivi CMOS che non hanno la possibilità di implementare una memoria non volatile riscrivibile (EEPROM o FLASH) che contenga i dati necessari ai comandi.
Un’architettura di power management composta da una PMU per ciascun POL, collegati mediante un’ interfaccia seriale è oggi comune e descritta nel brevetto US7000125 (Power-One) e illustrata schematicamente in una figura del brevetto, qui replicata come Fig. 1.
Una PMU come descritta nel sopra citato brevetto US7000125 non definisce in modo rigido uno standard (ovvero un protocollo con un set di comandi predefiniti), ma solo in modo generico per “programmare” e “monitorare” le funzioni della PMU. In pratica, sarebbe necessaria l’intera copia del programma in RAM per poter riscrivere parte del programma per correggerlo/adattarlo alle caratteristiche e necessità del proprio sistema. E’ nota una tecnica cosiddetta di “Patch Manager” applicata a sistemi digitali di cattura ed elaborazione d’immagini, dove l’applicazione di controllo è normalmente eseguita da un microprocessore, di cui il brevetto US5938766 (Apple) ne è esempio. Secondo questa tecnica, per evitare l’uso di una RAM grande come tutto il programma, il programma è scritto in modo che possa essere diviso in routine in ROM e viene introdotta la possibilità di correggere il programma eseguito dal microprocessore senza che il codice del programma venga interamente copiato dalla ROM in cui esso risiede nella RAM associata al microprocessore. Una parte della ROM possiede gli indirizzi (o simboli) di ciascuna routine che compone il programma. Il Patch Manager è quindi un insieme di indirizzi contenuti in ROM. Alla partenza, il Patch Manager copia i puntatori ad una predeterminata locazione di RAM per fornire un accesso alle routine del programma in ROM. Per esempio se una prima routine in ROM ha bisogno di chiamare una seconda routine in ROM piuttosto che ridirigere l esecuzione del programma all'indirizzo ROM della seconda routine, la prima routine accede all' indirizzo predeterminato in RAM del puntatore della seconda routine. Quindi il puntatore per la seconda routine in ROM ridirige l’esecuzione allindirizzo ROM della seconda routine. Ipotizzando l implementazione di una tecnica di Patch Manager utilizzata in altri settori tecnici come ad esempio nel brevetto US5938766 (Apple), al cliente utilizzatore risulterebbe impossibile correggere una qualunque procedura a seguito di un proprio comando che non sia compreso tra quelli dello standard di Power Management implementato dal vendor, per esempio il PMBUS.org, senza che i valori dei relativi parametri siano stati registrati in una NVM interna al dispositivo e come tali leggibili. Tali valori sono spesso dati sensibili che qualificano/disvelano informazioni cruciali della tecnologia del cliente-utilizzatore e la tecnica ipotizzata pur offrendo indubbi vantaggi economici evitando la necessità di una RAM molto grande, ha questo aspetto spesso inaccettabile.
SCOPO E SOMMARIO DELL’INVENZIONE
Ai sopra discussi inconvenienti, limitazioni e costi implementativi dei sistemi di controllo di regolatori dell’ alimentazione per molteplici punti di carico (POL) di un complesso sistema elettronico della tecnica attuale, la richiedente ha trovato un’efficace soluzione che risponde sia all’esigenza di non richiedere il caricamento in RAM dell’intero programma per correzioni, modifiche o adattamento alle caratteristiche ed esigenze del proprio sistema elettronico che all’esigenza di non dover comunicare o rendere leggibili dati sensibili della propria tecnologia.
L’innovazione si basa sul riconoscimento da parte di una PMU di valori di ADDRESS e COMMAND contenuti in una comunicazione seriale e, in base al riconoscimento di tali valori, eseguire una particola procedura di programmazione, controllo o monitoraggio di un corrispondente POL.
Un’architettura basata su microprocessore oltre ad offrire notevoli vantaggi sulla flessibilità e rischi di progettazione si presta in modo particolare allo scopo e l’impiego secondo il trovato della richiedente di un blocco logico dedicato e di una memoria non volatile riscrivibile (NVM) esterna al dispositivo PMU si rivela risolutivo potendo in questo modo il blocco logico dedicato interno e la memoria esterna fungere da vero e proprio PMU_EXTENDER. Oltre ad eliminare la necessità di condividere certe informazioni con il vendor, il modo in cui l estensione di personalizzazione, progettata interamente dal cliente-utilizzatore, viene scaricata dalla memoria esterna (per implementare la funzione di PMU_EXTENDER) può opzionalmente contemplare la criptazione dei dati, evitando che possano essere ricavate le informazioni sensibili sul sistema elettronico.
Per implementare questa funzione si può usare un algoritmo di encryption e/o una chiave di ECC. L'encription e la chiave si aggiungono comunque ad una formattazione dei dati al download dell’ estensione dalla NVM esterna che deve coincidere con quella realizzata nel progetto hardware. In pratica, un malware dovrebbe conoscere l'implementazione hardware per poter risalire al firmware altrimenti difficilmente riconoscerebbe che i byte che estrae rappresentano codice Assembler di una CPU 8051. A tal fine, la NVM esterna dovrà avere una chiave di accesso al dispositivo per abilitare il controllo ECC (Errar Correcting Code) senza il quale il download non avrebbe successo. Questa chiave può essere scritta nella NVM interna (e quindi solo utenti hardware potrebbero inserirla con la rispettiva GUI) e deve coincidere con la chiave registrata nella NVM esterna.
Decisamente un algoritmo di encryption aumenta molto la protezione e può comunemente essere già previsto in ROM ancorché non abilitato e non pubblicizzato dal produttore del dispositivo integrato.
Le estensioni custom possono quindi essere gestite dallo stesso sistema che normalmente usa un file di simboli estratto dalla ROM dove i simboli sono inseriti al momento dello sviluppo del programma per generare una tabella di simboli che include almeno i nomi e gli indirizzi ROM delle routine del programma originale e che potrà anche contenere un numero di simboli aggiuntivi in grado di copiare in RAM altrettante routine adattate o modificate autonomamente dall’ utilizzatore. Il Patch Manager aggiorna la tabella dei simboli per collegare una estensione, modificando il puntatore di programma. Dopo l’aggiornamento il file dei simboli può essere rimosso e il sistema PMU funziona normalmente con l’estensione introdotta.
L’invenzione è definita nelle annesse rivendicazioni, il contenuto delle quali si intende far parte integrante della presente descrizione e qui incorporato per espresso riferimento.
BREVE DESCRIZIONE DEI DISEGNI
Fig. 1 è uno schema di principio di una PMU basata sull’impiego di un microprocessore rappresentativa dell’arte nota, come già discussa sopra.
Fig. 2 mostra lo schema funzionale di una PMU del presente trovato:
Fig. 3 mostra lo schema di abilitazione del blocco logico PMU_EXTENDER allo startup del sistema elettronico.
Fig. 4 è uno schema di principio di una forma di realizzazione della PMU
dell’ invenzione.
Fig. 5 mostra un esempio di schema circuitale di principio del blocco logico PMU_EXTENDER
Fig. 6 mostra il diagramma di flusso implementato dalla PMU della Fig. 4.
DESCRIZIONE DI FORME ESEMPLIFICATIVE DI REALIZZAZIONE
Lo schema strettamente funzionale della Fig. 2 mostra un esempio generico di implementazione di un’unità di controllo (PMU) per circuiti regolatori di tensione di alimentazione di uno o più punti di carico (POL) di un sistema elettronico, secondo il trovato. Gli elementi fondamentali sono un dispositivo integrato contenente un micro processore (pC), nell’esempio considerato una CPU-8051, la RAM e la ROM di sistema, un primo blocco circuitale di logica SMBUS, un secondo blocco circuitale di logica PMU_EXTENDER, un’interfaccia seriale SERIAL_INTERFACE, ed opzionalmente anche una memoria non volatile riscrivibile NVM, non essenziale all’ implementazione del trovato della richiedente, ed una memoria non volatile riscrivibile esterna NVMext, accoppiata al dispositivo tramite detta interfaccia seriale. In dettaglio:
pC: è un microprocessore che costituisce il cuore del sistema che a fronte di una comunicazione seriale sul bus dati esterno al micro processore, composta da un valore ADDRESS e un valore COMMAND, validi e ricevuti dal blocco logico SMBUS, esegue il corrispettivo compito o procedura.
SMBUS: è un blocco circuitale che implementa una funzione logica che traduce una comunicazione seriale in pacchetti di byte (ad esempio per il layer dati di un protocollo ISO, mentre il layer fisico può essere un banale protocollo I2C ed il layer comandi un PMBUS.org) affinché siano validamente ricevuti dal microprocessore. Il metodo con la quale il microprocessore riceve queste informazioni può essere dipendente dal tipo di microprocessore e dalla architettura del software che il microprocessore esegue.
Nell’esempio considerato il riconoscimento di un valore di ADDRESS valido avviene nel blocco logico SMBUS e fa scattare un interrupt (IRQ) al microprocessore che gli permette di usare il COMMAND come un puntatore in una lista di comandi validi. Ad ogni comando, il microprocessore esegue una procedura o routine che rappresenta una azione da eseguire.
RAM: è una memoria ad accesso casuale necessaria a qualunque tipo di microprocessore per immagazzinare in modo temporaneo dati necessari alla esecuzione del programma software. Dati possibili possono essere anche quelli relativi al programma stesso, ad esempio specifiche routine in cui un intero codice di programma può essere suddiviso. Il collegamento della RAM al pC può essere implementato con un idoneo bus di dati oppure con un bus condiviso.
ROM: è una memoria a sola lettura dedicata a contenere i dati che descrivono il programma software in esecuzione da parte del microprocessore. Il microprocessore scandisce l’esecuzione del programma attraverso un contatore denominato Program_Counter.
NVM: è una memoria non volatile riscrivibile dove nei dispositivi commerciali dell’arte nota vengono comunemente conservati i parametri necessari alla programmazione e alla configurazione del POL e che può opzionalmente essere presente allo stesso fine, benché non essenziale ai fini di implementazione dell’invenzione della richiedente. PMU_EXTENDER: è un blocco circuitale che implementa una funzione logica allo scopo di correggere una parte o del tutto il codice programma contenuto in ROM quando esso è in esecuzione da parte del microprocessore, in pratica, nel presente contesto, per modificare e/o aumentare il numero di COMMAND eseguibili dalla PMU. La funzione si estrinseca nel registrare in RAM due tabelle logiche: una rappresentante valori del Program_Counter ai quali effettuare un salto nello spazio degli indirizzi della ROM verso corrispettivi indirizzi di RAM e viceversa; l’altra rappresentante il contenuto in RAM che sostituisce, a quel punto di esecuzione, il codice programma contenuto in ROM.
SERIALJNTERFACE attua l’accoppiamento con una periferica esterna al dispositivo.
NVMext è una memoria non volatile riscrivibile esterna al dispositivo () che contiene le due tabelle.
Preferibilmente, può essere implementata una programmazione hardware che, all’avvio del sistema elettronico (al Boot), abilita la ricerca (funzione di “Patch Enable”) della memoria esterna, NVMext, attraverso l’interfaccia seriale (che può non necessariamente essere per un protocollo I2C, ma anche SPI o altro). La funzione logica dell’interfaccia traduce da seriale a bytes le informazioni raccolte dalla memoria esterna NVMext.
Opzionalmente i dati tradotti potrebbero essere oggetto di criptazione per evitare che dall’ esterno possano essere ricavate informazioni sensibili sul proprio sistema elettronico. In tale caso la funzione logica implementata dal PMU_EXTENDER deve possedere una chiave di de-criptazione contenuta in ROM o proveniente anch’essa dall’esterno, ad esempio attraverso il blocco logico SMBUS. Se le dimensioni della RAM lo consentono, anche la seconda tabella può essere completamente scaricata in RAM oppure, in base alla esecuzione delle procedure del codice programma software di ciascun comando, essere scaricata dalla NVM esterna “a pezzi” e quando necessario. Come illustrato schematicamente in Fig. 3, se la NVM esterna viene trovata, allora il suo contenuto viene scaricato in RAM per completare le due tabelle sopra descritte e consentire così di effettuare le correzione o estendere i comandi eseguiti dalla PMU.
ESEMPIO
Con riferimento allo schema di una possibile forma di realizzazione della Fig. 4, allo start-up viene abilitata la funzione logica del blocco PMU_EXTENDER, un esempio di schema circuitale del quale è mostrato in Fig. 5, che attraverso una porta seriale scarica da una memoria esterna NVMext due tabelle. La porta seriale ottiene dati seriali dalla NVMext che vengono tradotti in byte per riempire in un ordine predeterminato la tabella dei puntatori XRAM_Pointers e la tabella delle estensioni XRAM_Extensions. Quest’ ultima rappresenta il codice programma scritto dal cliente-utilizzatore che viene eseguito per correggere o estendere i comandi PMBUS verso i rispettivi POL.
Lo scaricamento dei dati dalla memoria esterna NVMext può essere soggetto a verifica di integrità dei dati (parity bit, sum check) e a criptazione.
I dati delle tabelle vengono rilasciati solo dopo che i controlli di integrità e dell’eventuale de-criptazione sono andati a buon fine. Il flusso dei dati allo start-up viene indicato con la linea tratteggiata nello schema della Fig. 4.
Quando il microprocessore μC esegue un programma scaricandone il codice dalla memoria ROM, aggiorna il puntatore della memoria contenente i dati del programma, denominato “Program_Counter” (della memoria ROM nel caso in cui il programma risieda solo in ROM oppure di entrambe ROM e RAM nel caso in cui le due memorie condividano lo stesso spazio di indirizzamento).
La tabella dei puntatori è in pratica la lista degli indirizzi della memoria programma (ROM o ROM e RAM nel caso di memoria condivisa) dalla quale il Program_Counter deve ridirigere l’esecuzione (jumping address) e la lista degli indirizzi della memoria programma XRAM_Extensions alla quale il Program_Counter deve dirigere per continuare l’esecuzione del programma (returning address).
Quando il controllore di sistema invia un comando PMBUS, la periferica SMBUS ne controlla l’ADDRESS e se questo risulta corretto estrae dalla trasmissione seriale il byte del rispettivo comando COMMAND e genera un interrupt IRQ al microprocessore (pC). Il microprocessore usa l informazione COMMAND come puntatore programma (Program_Counter_pP) per l’esecuzione della routine corrispondente al comando ricevuto. Il PMU_EXTENDER confronta il puntatore programma (Program_Counter_pP) con la tabella dei puntatori XRAM_Pointers alla lista Jumping Address. Se non trova una corrispondenza lascia che il Program_Counter rimanga invariato e quindi la routine eseguita è effettivamente quella originale (la routine presente in ROM) e il Program_Counter viene incrementato con l’evolversi del Clock del pC.
Se il PMU_EXTENDER trova una corrispondenza con un Jumping Address, allora assegna al Program_Counter l’indirizzo Retuming_Address e quindi ridirige l’esecuzione del programma per esempio in una routine di estensione copiata in XRAM_Extensions e il Program_Counter viene incrementato con l’evolversi del Clock del μC.
In una possibile implementazione è possibile forzare il Program_Counter_ μC al un valore nuovo del Program_Counter impostato dal PMU_EXTENDER inserendo nel flusso di dati che dalla RAM/ROM giunge al pC per eseguire il programma (Instruction Data) una istruzione di Junp all'indirizzo dato dal Returning Address; questo forzerà il Program_Counter alPindirizzo del Retuming Address.
L’istruzione di Jump è comune in tutti i microprocessori;: nell’esempio di realizzazione considerato con un 8051, l’istruzione è codificata con un byte e rindirizzo di memoria con due byte: quindi il PMU_EXTENDER inserisce nell’Istruction Data tre byte per forzare il Program_Counter.
II meccanismo consente di modificare alcune routine dei comandi oppure di aggiungerne di nuovi. Ad un nuovo comando non presente nella ROM del dispositivo commerciale, corrisponde un Program_Counter_μP che non ha una corrispondenza fisica in ROM, ma a seguito dell’ estensione avrà un Jumping Address verso una routine presente in RAM al corrispettivo indirizzo Retuming Address.
E’ così possibile sostituire persino una singola istruzione del programma come per esempio l’assegnazione di un valore ad una variabile.
Per esempio sia da 100 a 500 lo spazio di indirizzamento del Program_Counter in ROM. Sia da 1000 a 2000 lo spazio di indirizzamento delle estensioni in XRAM_Extensions, e la tabella dei puntatori abbia i seguenti valori 150/1100; 1200/152. Si assuma che il controllore di sistema invii un comando PMBUS numero 127.
Il μC assegna al Program_Counter_μP il valore 127. Il Program_Counter_μP ed il Program_Counter coincidono e vengono incrementati con il CLOCK.
Quando il Program_Counter_μP = 150, il PMU_EXTENDER assegna al Program_Counter il valore 1100.
In una implementazione possibile, il PMU Extender forza il Program_Counter_pP al valore 1100. Il programma del μC viene eseguito in RAM dall’ allocazione 1100 in poi e il Program_Counter evolve con il CLOCK fino a raggiungere il valore 1200. A questo punto il PMU_EXTENDER assegna il valore 152, ridirigendo l’esecuzione del programma in ROM. In pratica due istruzioni del pC in ROM (la 150 e la 151) sono state sostituite con 100 istruzioni in RAM (dalla 1100 alla 1199).
La Fig. 6 mostra il diagramma di flusso implementato dalla PMU della Fig. 4.
Claims (6)
- RIVENDICAZIONI 1. Unità di controllo (PMU) per circuiti regolatori di tensione di alimentazione di uno o più punti di carico (POL) di un sistema elettronico, composta da un dispositivo comprendente: a) un microprocessore (μP); b) una memoria ad accesso casuale (RAM) di immagazzinaggio temporaneo di dati necessari all’esecuzione di un programma da parte del microprocessore; c) una memoria a sola lettura (ROM) contenente dati di un programma software originale del dispositivo, eseguito dal microprocessore scandendone l’esecuzione mediante un contatore (Program_Counter); d) più bus di comunicazione seriale del microprocessore con periferiche ad esso associate; e) un primo blocco circuitale di logica (SMBUS) atta a tradurre una comunicazione seriale su bus in pacchetti di byte di informazioni operative trasmesse al microprocessore; f) una memoria non volatile riscrivibile (NVMext) esterna ad dispositivo, contenente dati di programma software sostitutivi di dati di detto programma software originale del dispositivo contenuto nella memoria a sola lettura (ROM) atti ad aggiungere o modificare comandi implementati con rispettive procedure software ad un protocollo di comunicazione dell’unità di controllo (PMU) tra ogni circuito regolatore di tensione di alimentazione di un punto di carico (POL) ed il microprocessore e/o valori di parametri di programmazione e conseguente configurazione di rispettivi circuiti regolatori di detti punti di carico (POL), accoppiata ad un bus interno al dispositivo; g) un secondo blocco circuitale di logica (PMU_EXTENDER), atto a copiare detti dati di programma software sostitutivi per aggiungere o modificare comandi e/o valori di parametri di programmazione in una tabella in detta memoria ad accesso casuale (RAM) e ad implementare salti dallo spazio indirizzi di detti dati di programma residenti in detta memoria a sola lettura (ROM) verso indirizzi di detta tabella nella memoria ad accesso casuale (RAM), contenenti dati di programma di dette procedure software sostitutive e/o detti valori, e viceversa, al raggiungimento di determinati valori di conteggio di detto contatore (Program_Counter) ; h) un’interfaccia seriale di accoppiamento di detta memoria non volatile riscrivibile esterna (NVMext) ad un bus interno del dispositivo.
- 2. L’unità di controllo (PMU) della rivendicazione 1, in cui all’avvio del sistema elettronico, detto secondo blocco circuitale di logica (PMU_EXTENDER) registra due tabelle logiche in detta memoria ad accesso casuale (RAM): una rappresentante valori del Program_Counter ai quali effettuare un salto dallo spazio degli indirizzi ROM verso corrispettivi indirizzi RAM e viceversa; l’altra rappresentante contenuti indirizzabili di dati di programma software sostitutivi, a quel punto di esecuzione, del programma software originale residente in ROM.
- 3. L’unità di controllo (PMU) della rivendicazione 1, in cui, al download dell’estensione, i dati contenuti in detta memoria non volatile riscrivibile esterna (NVMext) sono formattati coerentemente alla formattazione implementata nel progetto hardware del dispositivo, e detta memoria non volatile riscrivibile esterna (NVMext) ha una chiave di accesso al dispositivo, atta ad abilitare il controllo ECC (Errar Correcting Code), identica ad una chiave scritta in una memoria non volatile riscrivibile interna (NVM) al dispositivo.
- 4. L’unità di controllo (PMU) della rivendicazione 1, in cui i dati contenuti in detta memoria non volatile riscrivibile esterna (NVMext) sono criptati e detto secondo blocco logico (PMU_EXTENDER) ha una chiave di de-criptazione registrata in ROM o fornita al dispositivo dall’ esterno attraverso detto primo blocco logico (SMBUS).
- 5. L’unità di controllo (PMU) della rivendicazione 2, in cui detto secondo blocco circuitale logico (PMU_EXTENDER) include mezzi di programmazione hardware atti ad abilitare la ricerca di detta memoria esterna (NVMext) attraverso detta interfaccia seriale all’avvio del sistema elettronico e la copiatura in RAM di dette tabelle logiche.
- 6. L’unità di controllo (PMU) secondo una qualsiasi delle precedenti rivendicazioni 1-5, in cui detta pluralità di bus di comunicazione seriale include un bus afferente a un layer dati di un protocollo ISO, un bus afferente ad un layer fisico di protocollo I2C e un bus afferente a un layer comandi di protocollo PMBUS.org.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT000944A ITMI20120944A1 (it) | 2012-05-31 | 2012-05-31 | Unità di controllo di circuiti di alimentazione per uno o più punti di carico di un sistema elettronico con nvm esterna di personalizzazione |
US13/907,543 US9454215B2 (en) | 2012-05-31 | 2013-05-31 | Power management architecture based on microprocessor architecture with embedded and external non-volatile memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT000944A ITMI20120944A1 (it) | 2012-05-31 | 2012-05-31 | Unità di controllo di circuiti di alimentazione per uno o più punti di carico di un sistema elettronico con nvm esterna di personalizzazione |
Publications (1)
Publication Number | Publication Date |
---|---|
ITMI20120944A1 true ITMI20120944A1 (it) | 2013-12-01 |
Family
ID=46548652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
IT000944A ITMI20120944A1 (it) | 2012-05-31 | 2012-05-31 | Unità di controllo di circuiti di alimentazione per uno o più punti di carico di un sistema elettronico con nvm esterna di personalizzazione |
Country Status (2)
Country | Link |
---|---|
US (1) | US9454215B2 (it) |
IT (1) | ITMI20120944A1 (it) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6250447B2 (ja) * | 2014-03-20 | 2017-12-20 | 株式会社メガチップス | 半導体装置及び命令読み出し制御方法 |
US10037068B2 (en) * | 2014-09-09 | 2018-07-31 | Infineon Technologies Austria Ag | Configurable digital interface for switching voltage regulators |
CN106933580B (zh) * | 2017-03-02 | 2020-12-29 | 北京天恒长鹰科技股份有限公司 | 一种嵌入式软件架构系统 |
CN109522006A (zh) * | 2018-11-16 | 2019-03-26 | 湖南国科微电子股份有限公司 | 嵌入式多媒体播放框架 |
US10884638B1 (en) * | 2019-06-25 | 2021-01-05 | Micron Technology, Inc. | Programmable peak power management |
EP4088214A4 (en) * | 2020-02-21 | 2023-08-30 | Hewlett-Packard Development Company, L.P. | COMPUTING DEVICES FOR ENCRYPTION AND DECRYPTION OF DATA |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172656A1 (en) * | 2007-12-31 | 2009-07-02 | Silicon Laboratories Inc. | Circuit device and method of providing a programmable power supply |
US20100013304A1 (en) * | 2008-07-18 | 2010-01-21 | Heineman Douglas E | Adding and Dropping Phases in Current Sharing |
US7653757B1 (en) * | 2004-08-06 | 2010-01-26 | Zilker Labs, Inc. | Method for using a multi-master multi-slave bus for power management |
EP2369727A2 (en) * | 2010-03-23 | 2011-09-28 | Bel Fuse (Macao Commercial Offshore) Limited | Distributed power supply system with digital power manager providing digital closed-loop power control |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1530444A (en) * | 1974-11-11 | 1978-11-01 | Xerox Corp | Automatic writing system and methods of word processing therefor |
US5796974A (en) * | 1995-11-07 | 1998-08-18 | Advanced Micro Devices, Inc. | Microcode patching apparatus and method |
US5938766A (en) | 1997-03-21 | 1999-08-17 | Apple Computer, Inc. | System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables |
JP2995030B2 (ja) * | 1998-03-31 | 1999-12-27 | 三洋電機株式会社 | コンピュータシステム、並びにコンピュータシステムにおけるプログラム及びデータの修正方法 |
US6260157B1 (en) * | 1999-02-16 | 2001-07-10 | Kurt Schurecht | Patching of a read only memory |
JP2001125781A (ja) * | 1999-10-29 | 2001-05-11 | Matsushita Electric Ind Co Ltd | マイクロプロセッサ、およびマイクロプロセッサにおけるプログラム変更方法 |
US20030196096A1 (en) * | 2002-04-12 | 2003-10-16 | Sutton James A. | Microcode patch authentication |
US7739485B2 (en) * | 2002-10-11 | 2010-06-15 | Hewlett-Packard Development Company, L.P. | Cached field replaceable unit EEPROM data |
US7000125B2 (en) | 2002-12-21 | 2006-02-14 | Power-One, Inc. | Method and system for controlling and monitoring an array of point-of-load regulators |
JP4617816B2 (ja) * | 2004-10-12 | 2011-01-26 | 株式会社デンソー | 車両制御装置、および書き換えプログラム受信・起動プログラム |
US7739469B2 (en) * | 2005-11-08 | 2010-06-15 | Freescale Semiconductor, Inc. | Patching ROM code |
TW200719142A (en) * | 2005-11-08 | 2007-05-16 | Mstar Semiconductor Inc | Content correction method of an ROM build-in program code |
KR100804647B1 (ko) * | 2005-11-15 | 2008-02-20 | 삼성전자주식회사 | 병렬형 플래시 인터페이스를 지원하는 직렬형 플래시메모리 장치를 이용한 시스템 부팅 방법 및 장치 |
KR100717110B1 (ko) * | 2006-02-21 | 2007-05-10 | 삼성전자주식회사 | 롬 데이터 패치 회로, 이를 포함하는 임베디드 시스템 및롬 데이터 패치 방법 |
-
2012
- 2012-05-31 IT IT000944A patent/ITMI20120944A1/it unknown
-
2013
- 2013-05-31 US US13/907,543 patent/US9454215B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7653757B1 (en) * | 2004-08-06 | 2010-01-26 | Zilker Labs, Inc. | Method for using a multi-master multi-slave bus for power management |
US20090172656A1 (en) * | 2007-12-31 | 2009-07-02 | Silicon Laboratories Inc. | Circuit device and method of providing a programmable power supply |
US20100013304A1 (en) * | 2008-07-18 | 2010-01-21 | Heineman Douglas E | Adding and Dropping Phases in Current Sharing |
EP2369727A2 (en) * | 2010-03-23 | 2011-09-28 | Bel Fuse (Macao Commercial Offshore) Limited | Distributed power supply system with digital power manager providing digital closed-loop power control |
Also Published As
Publication number | Publication date |
---|---|
US9454215B2 (en) | 2016-09-27 |
US20130326124A1 (en) | 2013-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ITMI20120944A1 (it) | Unità di controllo di circuiti di alimentazione per uno o più punti di carico di un sistema elettronico con nvm esterna di personalizzazione | |
US9965270B2 (en) | Updating computer firmware | |
CN103688268B (zh) | 车辆单元和用来操作车辆单元的方法 | |
US9223559B2 (en) | Information processing apparatus, electronic control unit, information processing method, and program | |
CN105511911B (zh) | 系统固件升级包的生成方法及装置 | |
KR102026393B1 (ko) | 판독 전용 메모리의 부트 코드 패칭 | |
KR20100066576A (ko) | 펌웨어 이미지 갱신 및 관리 | |
BR112016025249B1 (pt) | Método e dispositivo incorporado para carregar acionador | |
CN109558160A (zh) | 升级方法、嵌入式系统 | |
CN101192165A (zh) | 主从式多处理器系统以及软件版本加载方法 | |
CN107003871B (zh) | 用于使用预引导更新机制来提供硬件订阅模式的技术 | |
CN105808266A (zh) | 代码运行方法及装置 | |
JP2019101866A (ja) | アプリケーションの更新方法およびプログラム | |
JP6139386B2 (ja) | プログラマブルコントローラ | |
WO2016062146A1 (zh) | 序列号信息的更新方法、装置及终端 | |
CN112083971A (zh) | 组件处理方法、设备及存储介质 | |
BR112014017283B1 (pt) | Método implementado por máquina, meio legível por máquina tangível e dispositivo compreendendo um atualizador de aplicação | |
CN103858097A (zh) | 封装其它凭据提供者的凭据提供者 | |
CN107193484A (zh) | 用于数据存储服务的方法和装置 | |
CN107667356A (zh) | 存储器加密排除方法和设备 | |
JP6582438B2 (ja) | 情報処理装置、システム設定方法、及び、コンピュータ・プログラム | |
ES2779321T3 (es) | Procedimiento para realizar una actualización de un sistema operativo | |
CN110337650A (zh) | 信息处理装置和访问管理程序 | |
Gediya et al. | Open-Source Software | |
TWI556171B (zh) | 主機板及開機的方法 |