DE102015226837A1 - Initialisierung von Speicher in einem Computersystem - Google Patents

Initialisierung von Speicher in einem Computersystem Download PDF

Info

Publication number
DE102015226837A1
DE102015226837A1 DE102015226837.3A DE102015226837A DE102015226837A1 DE 102015226837 A1 DE102015226837 A1 DE 102015226837A1 DE 102015226837 A DE102015226837 A DE 102015226837A DE 102015226837 A1 DE102015226837 A1 DE 102015226837A1
Authority
DE
Germany
Prior art keywords
memory
processor
controller
computer system
external
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
DE102015226837.3A
Other languages
English (en)
Inventor
Nikolaos Moschopoulos
Dimitrios Papadopoulos
Jakko Verhallen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dialog Semiconductor BV
Original Assignee
Dialog Semiconductor BV
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 Dialog Semiconductor BV filed Critical Dialog Semiconductor BV
Priority to DE102015226837.3A priority Critical patent/DE102015226837A1/de
Priority to US15/389,535 priority patent/US10921999B2/en
Publication of DE102015226837A1 publication Critical patent/DE102015226837A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

Ein Computersystem, insbesondere ein eingebettetes System, ohne jedoch hierauf beschränkt zu sein, ist mit einem Prozessor (CPU) und einem externen FLASH- oder anderem Speicher bereitgestellt, der zum Speichern von Code verwendet wird, der beim Betrieb des Systems durch die CPU ausgeführt werden soll. Das System kann initialisiert werden, ohne dass eine Sekundär-Boot-Sequenz erforderlich ist, was bedeutet, dass es bevorzugt für eingebettete oder serielle FLASH-Lösungen verwendet werden kann.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft eine Vorrichtung und Verfahren zur Initialisierung von nichtflüchtigem Speicher in einem Computersystem, das einen Prozessor zusammen mit dem Speicher aufweist.
  • HINTERGRUND
  • Ein Prozessor in einem Computersystem ist angeordnet, um verschiedene Vorgänge auszuführen, die einen oder mehr grundlegende arithmetische, logische, Steuer- und Eingabe/Ausgabe(I/O)-Vorgänge umfassen können. Ein Prozessor, der all diese Arten von Vorgängen durchführen kann, wird gemeinhin als zentrale Recheneinheit bzw. Prozessor (CPU) bezeichnet und umfasst eine arithmetisch-logische Einheit (ALU), Register, eine Steuereinheit, und in manchen Fällen Cache-Speicher. Der Prozessor (über die Steuereinheit in Falle einer CPU) ruft Anweisungen von einem Speicher zur Ausführung ab, die für verschiedene Zwecke wie etwa die Initialisierung des Systems oder das Ablaufen eines Programms ausgeführt werden sollen.
  • Ein Bereich zunehmender Aufmerksamkeit ist derjenige der eingebetteten Systeme. Ein eingebettetes System ist ein Computersystem mit einer dedizierten Funktion, das als Teil eines größeren mechanischen oder elektrischen Systems fungieren kann.
  • Eingebettete Systeme sind ein Schlüsselteil zur Ermöglichung des so genannten ”Internet der Dinge” (IoT), das sich auf ein Konzept bezieht, bei dem Objekte, die traditionell nicht als Computer oder Rechenvorrichtungen betrachtet wurden, mit eingebetteten Systemen ausgestattet werden, die es den Objekten erlauben, Daten zu sammeln und auszutauschen. Neben der Inkorporation eingebetteter Systeme in bestehende, alltägliche Objekte umfasst der Begriff ”Internet der Dinge” ebenfalls neue und zukünftige Technologien, wie etwa mikroelektromechanische (MEMS) und nanotechnologische Vorrichtungen, Smartdust oder ähnliche Sensorknoten.
  • Das Internet der Dinge hat den Bedarf für kleine Vorrichtungen und Vorrichtungen mit geringer Leistungsaufnahme geschaffen, die letztendlich alles auf einem Protokoll-Backbone bzw. Hauptnetz oder einer tragbare Rechenvorrichtung (wie etwa ein Smartphone oder Tablet) verbinden können. Protokolle, die für Anwendungen des Internets der Dinge verwendet werden, nutzen die Vorteile der Eignung solcher Vorrichtungen, für lange Zeiträume im Ruhemodus zu verbleiben, während sie nur für ein kurzes Zeitintervall aktiv sind, das gerade ausreicht, die üblicherweise geringen Datenmengen an das Backbone bzw. Hauptnetz oder die tragbare Rechenvorrichtung zu senden.
  • Um äußerst geringe Energie während der aktiven Zeiten zu erreichen, weisen tief eingebettete Systeme einen eingebetteten oder seriellen nicht-flüchtigen Speicher (NVM) auf, üblicherweise FLASH, um Code und wichtige Daten zu erhalten. Jedoch sind FLASH-Prozesse, die weit im Submikrometerbereich liegen, ziemlich teuer, während FLASH-Zellen die Chipgröße deutlich erhöhen, wodurch die Siliziumkosten steigen.
  • Ein alternativer Ansatz besteht darin, einen Prozessor und einen Speicher zu verwenden, der extern zu bzw. außerhalb des Prozessors bereitgestellt ist, üblicherweise als diskrete Komponente. Diese Architektur stellt die gleiche Leistung bereit wie mit einem eingebetteten NVM-Speicher (nichtflüchtiger Speicher), und erlaubt gleichzeitig eine vergrößerbare Speichergröße, da es sich um eine externe, diskrete Komponente handelt.
  • Jedoch muss bei dieser Art von Anordnung der Speicher initialisiert werden, bevor Code durch den Prozessor ausgeführt werden kann. Der Bedarf zur Initialisierung verursacht eine Verzögerung und erhöht das Risiko, dass das System zusammenbricht.
  • Ein solches System wird üblicherweise einen Speicher-Controller aufweisen, der die Speicherung von Daten in dem Speicher-Array verwaltet und Daten zwischen dem Prozessor und dem Speicher austauscht. Genau wie der Speicher selbst muss der Controller ebenfalls initialisiert werden, bevor der Prozessor Code ausführen kann.
  • 1 zeigt ein Beispiel eines eingebetteten Systems gemäß dem Stand der Technik, bei dem ein Ein-Chip-System (SoC) 100 mit einem externen FLASH-Speicher 102 versehen ist. Ein FLASH-Controller 106 beherrscht die Kommunikation zwischen einer CPU 104 und dem Speicher 102. Das Ein-Chip-System 100 ist ebenfalls mit einer Stromverwaltungseinheit (PMU) 108 versehen, die ein Weckrufsignal empfangen kann, wenn das System schläft oder ausgeschaltet ist.
  • Während der Ruhezeit des Systems kann der Speicher 102 vollständig von der Stromversorgung getrennt sein, oder in einen tiefen Niederstrommodus mit geringem Leckstromverlust versetzt werden. Wenn das System erwacht, muss der Speicher 102 für den Code-Abruf durch den Prozessor 104 bereit werden. Der Controller 106 muss ebenfalls konfiguriert sein, die Speicherinitialisierung durchzuführen. Ein spezifischer Befehl oder Befehlssequenz kann von Nöten sein, um das System in einen bestimmten Datenübertragungsmodus zu versetzen, oder die Vorrichtung aus einem Niederstrommodus in einen normalen Betriebsmodus freizugeben.
  • Da viele Verkäufer von Speichern ihre eigenen Befehlscodes für verschiedene Befehle verwenden, würde es darüber hinaus einer verbindungsprogrammierten bzw. festverdrahteten Implementierung an Flexibilität mangeln.
  • Der Controller 106 selbst muss vitale Konfigurationen erhalten, falls er während des Schlafs ausgeschaltet bzw. vom Strom getrennt wird. Dies erfordert Retentionregister bzw. Rückhalteregister, die ihre Programmierwerte behalten, so dass der Controller bei einem Weckruf weiß, was zu tun ist.
  • ZUSAMMENFASSUNG DER OFFENBARUNG
  • Gemäß einem ersten Aspekt der Offenbarung ist ein Computersystem bereitgestellt, aufweisend: einen Prozessor; einen externen Speicher, der außerhalb des Prozessors liegt; einen Speicher-Controller für den externen Speicher; und eine Stromverwaltungseinheit, die angeordnet ist, um ein Weckrufsignal zu empfangen, dann erstens den Speicher-Controller zu wecken; und zweitens zu einem späteren Zeitpunkt den Prozessor zu wecken.
  • Optional ist der Controller angeordnet, um den externen Speicher zu initialisieren, bevor der Prozessor von der Stromverwaltungseinheit geweckt wird.
  • Optional umfasst das Computersystem ferner einen Befehlsspeicher, der Speicherinitialisierungsanweisungen für den externen Speicher speichert; und wobei der Speicher-Controller angeordnet ist, die Speicherinitialisierungsanweisungen von dem Befehlsspeicher abzurufen, wenn er von dem Weckrufsignal geweckt wird, das er von der Stromverwaltungseinheit empfängt.
  • Optional weist der Speicher-Controller einen Arbeitsspeicher zum Speichern der Speicherinitialisierungsanweisungen auf.
  • Optional weist der Controller eine Hardwarezustandsmaschine zum Initialisieren des externen Speichers auf.
  • Optional sind der Prozessor, der Befehlsspeicher, die Stromverwaltungseinheit und der Speicher-Controller als Komponenten des gleichen integrierten Schaltkreises vorgesehen.
  • Optional ist der externe Speicher ein FLASH-Speicher oder anderer EEPROM.
  • Gemäß einem zweiten Aspekt der Offenbarung ist ein Verfahren zum Überführen eines Computersystems aus einem Ruhezustand oder ausgeschalteten Zustand in einen eingeschalteten Zustand bereitgestellt, wobei das Computersystem einen Prozessor, einen externen Speicher, der außerhalb des Prozessors liegt, eine Stromverwaltungseinheit und einen Speicher-Controller aufweist, das Verfahren umfassend: Empfangen, an der Stromverwaltungseinheit, einer Weckrufanfrage; Wecken des Speicher-Controllers; dann, zu einem späteren Zeitpunkt, Wecken des Prozessors.
  • Optional umfasst das Verfahren das Initialisieren des externen Speichers nach dem Wecken des Speicher-Controllers und vor dem Wecken des Prozessors.
  • Optional umfasst das Initialisieren des externen Speichers das Abrufen von Speicherinitialisierungsanweisungen von einem Befehlsspeicher und das Laden dieser Anweisungen in den Speicher-Controller.
  • Optional umfasst das Initialisieren des externen Speichers das Senden von Befehlen an den externen Speicher unter Verwendung einer Hardware-Zustandsmaschine.
  • Optional, nachdem der Prozessor geweckt wurde, übernimmt er und tauscht Daten mit dem externen Speicher aus.
  • ZUSAMMENFASSUNG DER ZEICHNUNGEN
  • Die Offenbarung wird nun lediglich beispielhaft anhand der beigefügten Zeichnungen beschrieben, wobei:
  • 1 ein Beispiel eines eingebetteten Systems gemäß dem Stand der Technik zeigt, bei dem ein Ein-Chip-System (SoC) mit einem externen FLASH-Speicher bereitgestellt ist;
  • 2 eine Ausführungsform eines eingebetteten Systems gemäß der vorliegenden Offenbarung veranschaulicht;
  • 3 eine Ausführungsform eines Controllers veranschaulicht, der in dem System aus 2 verwendet werden kann;
  • 4 ein eingebettetes System gemäß einer weiteren Ausführungsform der vorliegenden Offenbarung zeigt; und
  • 5 ein Verfahren zur Systeminitialisierung gemäß der Offenbarung veranschaulicht.
  • DETAILLIERTE BESCHREIBUNG
  • 2 veranschaulicht ein System 200 gemäß einer Ausführungsform der Offenbarung. Ein Prozessor 204 ruft Anweisungen von einem Speicher 202 ab, der in einer bevorzugten Ausführungsform ein nichtflüchtiger Speicher ist (NVM). Ein Speicher-Controller 206 konfiguriert den Speicher 202 und ist über eine Schnittstelle mit dem Prozessor 204 verbunden. Die Komponenten sind durch Datenbusse 210, 212, 214 verbunden und eine Stromverwaltungseinheit (PMU) 208 ist bereitgestellt, die Weckrufsignale 216, 218 jeweils an den Prozessor 204 und den Controller 206 sendet.
  • Die Offenbarung ist nicht auf eine spezifische Architektur beschränkt, in einer beispielhaften Implementierung jedoch sind der Prozessor 204, der Controller 206, die Stromverwaltungseinheit (PMU) 208 und der optionale Befehlsspeicher 210 alle als Teil des gleichen Ein-Chip-Systems (SoC) bereitgestellt, und der Speicher 202 ist als getrennte, diskrete Komponente, außerhalb des Ein-Chip-Systems, bereitgestellt.
  • Der Prozessor 204 und die Stromverwaltungseinheit (PMU) 208 sind als getrennte Komponenten gezeigt, sie können jedoch alternativ als Teil einer kombinierten Komponente bereitgestellt sein, das heißt die Stromverwaltungseinheit PMU könnte im Prozessor 204 integriert sein oder umgekehrt. Auf ähnliche Weise könnte der Controller 206 als Teil des Ein-Chip-Systems (SoC) bereitgestellt sein, oder er könnte zusammen mit dem Speicher 202 integriert sein, wobei in diesem Fall der Speicher 202 und der Controller 206 zusammen als diskrete Komponente, außerhalb des Ein-Chip-Systems (SoC), bereitgestellt sind.
  • Die Stromverwaltungseinheit (PMU) ist angeordnet, um ein Weckrufsignal von einer externen Quelle oder einem externen System zu empfangen. Sie kann ebenfalls komplexere Komponenten bzw. Bauteile umfassen, die eine oder mehr Strom- bzw. Energieverwaltungsfunktionen wie etwa Batterieverwaltung, Spannungsregulierung und Aufladefunktionen bereitstellen.
  • Ein Befehlsspeicher 210 ist bereitgestellt, der Anweisungen zur Verwendung durch den Controller 206 speichern kann, einschließlich Code zum Initialisieren des Controllers 206. Der Befehlsspeicher 210 ist als optionale Komponente dargestellt, weil es ebenfalls möglich ist, dass die benötigten Anweisungen in dem Hauptspeicher 202 gespeichert werden.
  • 3 zeigt eine beispielhafte Ausführungsform eines Controllers 206 zur Verwendung mit dem System aus 2. Wie in 2 gezeigt tauscht der Controller 206 Daten mit dem Prozessor 204, der Stromverwaltungseinheit 208 und dem Befehlsspeicher 210 über den Datenbus 212 aus, und tauscht Daten mit dem Speicher 202 über den Datenbus 214 aus. Der Controller 206 umfasst eine Bus-Schnittstelle 300, einen Speicher 302, und einen endlichen Zustandsautomat (FSM) 304. Der Speicher 302 umfasst bevorzugt einen angemessenen Direktzugriffsspeicher (RAM). Der endliche Zustandsautomat (FSM) 304 verändert den Zustand in Abhängigkeit von den Eingaben die er von der Bus-Schnittstelle 300 und dem Direktzugriffsspeicher (RAM) 302 empfängt und ist in bevorzugten Ausführungsformen in Hardware implementiert. Der endliche Zustandsautomat (FSM) umfasst jedwede geeignete Schaltung, die den Zustand in Abhängigkeit der Eingaben ändern kann.
  • Es ist möglich, dass der Speicher 202 entweder vollkommen ausgeschaltet bzw. von der Stromversorgung getrennt ist oder in einen tiefen Niederstrommodus geschaltet ist, wenn das System in einen Schlafmodus (jedweder Art) übergeht, insbesondere falls der Controller 206 als Teil einer Ein-Chip-Systems (SoC) mit äußerst geringem Stromverbrauch verwendet wird. Jedoch erfordert der Speicher 202 beim Einschalten oder Aufwecken eine Reihe von Befehlen, um einen Zustand zu erreichen, in dem der Prozessor 204 tatsächlich Code ausführen kann. Diese Initialisierung sollte vor dem Wecken des Prozessors 204 erfolgen.
  • Wenn die Stromverwaltungseinheit 207 eine Unterbrechung bzw. einen Interrupt 201 oder ein anderes Weckrufsignal empfängt, stellt sie die Stromzufuhr wieder her und sendet einen Weckrufbefehl 218 an den Controller 206. Der Controller 206 erhält dann Initialisierungsbefehle von dem Speicher 210 und lädt diese in seinen Betriebsspeicher 302, der in geeigneter Weise in Gestalt eines FIFO(First in First Out)-Puffers oder eines anderen geeigneten Speichers vorliegen kann. Der Befehlsspeicher 210 kann eine geeignete Art von nicht-flüchtigem Speicher sein, wie etwa ein einmal programmierbarer Nur-Lese-Speicher (OTP ROM), und er kann vorprogrammiert sein, beispielweise während der Prüfung des Produkts.
  • Dann dekodiert der Controller 206 die Befehle im Direktzugriffsspeicher 302 in Speicherbefehle eines angemessenen Formats und initialisiert dann den Speicher 202. Wie in 3 gezeigt kann der Controller 206 eine Hardware-Zustandsmaschine 304 umfassen, welche die Dekodierungs- und Initialisierungsfunktionen ausführen kann.
  • Nach der Initialisierung des Speichers 202 sendet die Stromverwaltungseinheit 208 einen Weckrufbefehl 216 an den Prozessor 204, der aufzeigt, dass der Speicher 202 nun zur Code-Ausführung durch den Prozessor 204 bereit ist. Der Prozessor 204 übernimmt dann und beginnt, Code aus dem Speicher 202 abzurufen.
  • Wie oben erwähnt können die Initialisierungsbefehle in einer alternativen Ausführungsform direkt in dem Speicher 202 anstatt in einem dedizierten Befehlsspeicher 210 gespeichert werden. Anweisungen zum Abrufen der Befehle können im Controller hartkodiert sein.
  • Die Stromverwaltungseinheit informiert sowohl den Controller 206 als auch den Prozessor 204, dass das System geweckt werden soll, jedoch nicht zur gleichen Zeit. Durch das Sicherstellen, dass der Speicher initialisiert ist, bevor der Prozessor 204 erwacht, erscheint es dem Prozessor 204 als ob der Speicher 202 überhaupt nicht schlafen gegangen wäre und Anweisungen können durch den Prozessor 204 abgerufen werden, sobald er gestartet wird. Sekundäre Lader sind nicht erforderlich, um sich um die Initialisierungsprozedur zu kümmern.
  • Ebenfalls muss der Prozessor 204 nicht in die Initialisierung des Speichers 202 eingreifen. Stattdessen ist eine sehr kleine (im Vergleich zum Prozessor) dedizierte Hardware-Zustandsmaschine 304 oder gleichwertig vorgesehen, welche die Initialisierung durchführt, so dass es zu einer Stromeinsparung verglichen mit dem Eingreifen eines Prozessors kommt.
  • Die Offenbarung stellt ebenfalls große Flexibilität bereit, weil alle Befehle einschließlich Bereinigungswartezuständen im Direktzugriffsspeicher 302 des Controllers 206 programmiert werden können.
  • Ferner sind rückhaltende Register oder Direktzugriffsspeicher (RAM) vorgesehen, um den Speicherinitialisierungs-Mikro-Code in dem Controller zu speichern, selbst wenn eine Strominsel, die den Controller versorgt, vollständig ausgeschaltet ist.
  • Er gibt viele Arten von Systemen, Speichern und Kommunikationstechnologien, auf die die vorliegende Offenbarung angewendet werden kann. Um jedoch das Verständnis der Offenbarung weiter zu verbessern, veranschaulicht 4, lediglich beispielhaft, eine spezifische Ausführungsform der Offenbarung, wobei der Speicher ein QSPI (quad serial peripheral interface) FLASH-Speicher ist.
  • Wie in 4 gezeigt weist ein Ein-Chip-System 400 eine CPU 404 auf, die Anweisungen von einem QSPI FLASH-Speicher 402 abruft, der extern bzw. außerhalb zum Ein-Chip-System 400 bereitgestellt ist. Eine QSPI-Schnittstelle weist vier bidirektionale Eingangs- und Ausgangsdatensignale zwischen Master und Slave auf, die üblicherweise als I00 bis I03 gekennzeichnet sind. Der QSPI-Controller 406 weist eine Bus-Schnittstelle 420, Mikro-Code RAM 426 und eine Hardware-Zustandsmaschine (Steuer FSM) 424 auf. Das Ein-Chip-System (SoC) weist ebenfalls einen Nur-Lese-Speicher (ROM) auf, der ausgelegt ist, um mit der CPU 404 zur Ausführung einer bestimmten Funktion zu arbeiten, für die das Ein-Chip-System (SoC) vorgesehen ist.
  • Die Betriebsprinzipien des Systems aus 4 sind denen ähnlich, die obenstehend unter Bezugnahme auf die 2 und 3 beschrieben wurden, abgesehen davon, dass 4 mehr Einzelheiten einer spezifischen optionalen Implementierung bereitstellt. Die Initialisierungs-Mikrocodes werden an dem Ein-Chip-System 400 in einem einmal programmierbaren Speicher 410 (OTP-Speicher) gespeichert. Wenn die Stromverwaltungseinheit 408 eine Unterbrechung bzw. einen Interrupt empfängt oder anderweitig angewiesen wird, einen Weckruf zu initiieren, sendet sie ein Weckrufsignal 418 an den QSPI-Controller 406. Der Controller 406 ruft dann die in dem OTP 410 gespeicherten Mikro-Codes ab und speichert diese in ihrem Mikro-Code Direktzugriffsspeicher (RAM) 426, der in diesem Beispiel ein FIFO-Speicherpuffer ist.
  • Dann dekodiert die Hardware-Zustandsmaschine 424 die Befehle, die in dem FIFO 426 liegen und initialisiert den QSPI FLASH 402 automatisch.
  • Sobald der QSPI FLASH 402 initialisiert ist, sendet die Stromverwaltungseinheit 408 ein Weckrufsignal 416 an die CPU 404, was aufzeigt, dass der QSPI FLASH 402 zur Ausführung des Code verfügbar ist. Dann übernimmt die CPU 404 und beginnt, Code von dem QSPI FLSH-Speicher 402 abzurufen.
  • Eine Ausführungsform des Mikro-Codes könnte wie in der folgenden Tabelle dargestellt aussehen: Tabelle 1: Mikrocode-Ausführungsform
    Bit Name Beschreibung
    Byte 0
    7:3 CMD_BYTES Die Anzahl an Nutzdaten-Bytes, die gesendet werden sollen
    2:1 CMD_TX_MD QSPI-Bus-Modus beim Übertragen des Befehls 0x0: single SPI 0x1: Dual SPI 0x2: Quad SPI 0x3: Reserviert
    0 CMD_VALID 1: Befehlssatz gültig 0: Befehlssatz nicht gültig
    Byte 1
    7:0 CMD_WT_CNT_LS Anzahl von Taktzyklen, die abgewartet werden muss, nachdem der Befehl angelegt wurde (am wenigstens wichtiges Byte)
    7:0 CMD_WT_CNT_MS Anzahl von Taktzyklen, die abgewartet werden muss, nachdem der Befehl angelegt wurde (wichtigstes Byte)
    Byte 3 bis (CMD_NBYTES + 2)
    Die tatsächlichen Datenbytes, die innerhalb eines QSPI-Chip-Select-Envelope-Signals gesendet werden sollen.
  • Das erste Byte (LSByte) in dem Wort des FIFO enthält das Flag des Befehls, entweder gültig oder nicht gültig, den Bus-Betriebsmodus und die Anzahl von Bytes, die in den zu sendenden Nutzdaten enthalten sind.
  • Das zweite und dritte Byte definieren die Menge an Taktzyklen, um die der QSPI-Controller nach dem Anlegen des Befehls warten muss. In Abhängigkeit der Taktperiode, falls mehr Zeit von dem FLASH benötigt wird, bis er gesettelt ist, könnten mehrere identische Befehle ausgegeben werden.
  • Beispiel:
  • Sei 0xAB der Befehlscode zum Freigeben des FLASH aus dem tiefen Niederstrommodus, würde der FIFO mit der folgenden Sequenz initialisiert: Tabelle 2: Mikro-Code-Beispiel
    Byte Wert Beschreibung
    0 0x11 Gültiger Befehlssatz, single SPI Mode, 2 Bytes Nutzdaten
    1 0x01 Für 1 Taktzyklus warten, nachdem der Befehl gesendet wurde
    2 0x00
    3 0xAB Tatsächlicher QSPI FLASH Befehlscode. Dieser Befehlscode bedeutet ”Freigeben aus dem tiefen Niederstrommodus”
  • Es sei angemerkt, dass die Ausführungsform aus 4 zur Veranschaulichung dient und viele Variationen berücksichtigt werden können. Zum Beispiel kann die Schnittstelle eine normale SPI- oder als I2C-Schnittstelle sein und der Speicher kann eine andere Art sein.
  • Die vorliegende Offenbarung betrifft ebenfalls ein Verfahren zum Initialisieren eines Computersystems, das sich mit den Fähigkeiten der oben-beschriebenen Ausführungsformen deckt. Bei dem Verfahren handelt es sich ebenfalls um ein Verfahren zum Übergehen eines Computersystems aus einem Schlafzustand oder ausgeschalteten Zustand in einen eingeschalteten Zustand. Das Verfahren ist in dem Ablaufdiagramm in 5 veranschaulicht. Hier erkennt man, dass bei Schritt 500 die Stromverwaltungseinheit (PMU) eine Unterbrechung bzw. Interrupt empfängt, oder eine gleichwertige Anweisung, um ein Erwachen des Systems zu initiieren. Die Stromverwaltungseinheit (PMU) stellt dann die Stromversorgung wieder her und sendet ein Weckrufsignal an einen Controller (Schritt 502), woraufhin die Speicherinitialisierungs-Mikrocodes in den Direktzugriffsspeicher bzw. RAM (504) des Controllers geladen werden und der Speicher initialisiert (Schritt 506). Die Stromversorgungseinheit (PMU) weckt dann den Prozessor (Schritt 508), der dann übernimmt und Code aus dem Speicher abruft (Schritt 510).
  • Verschiedene Verbesserungen und Modifizierungen können an den obigen Ausführungen vorgenommen werden, ohne den Schutzumfang der Offenbarung zu verlassen.

Claims (12)

  1. Computersystem, aufweisend: einen Prozessor; einen externen Speicher, der außerhalb des Prozessors liegt; einen Speicher-Controller für den externen Speicher; und eine Stromverwaltungseinheit, die angeordnet ist, um ein Weckrufsignal zu empfangen, dann erstens den Speicher-Controller zu wecken; und zweitens zu einem späteren Zeitpunkt den Prozessor zu wecken.
  2. Computersystem nach Anspruch 1, wobei der Controller angeordnet ist, um den externen Speicher zu initialisieren, bevor der Prozessor durch die Stromverwaltungseinheit geweckt wird.
  3. Computersystem nach Anspruch 1 oder Anspruch 2, ferner aufweisend einen Befehlsspeicher, der Speicherinitialisierungsanweisungen für den externen Speicher speichert; und wobei der Speicher-Controller angeordnet ist, die Speicherinitialisierungsanweisungen von dem Befehlsspeicher abzurufen, wenn er von dem Weckrufsignal geweckt wird, das er von der Stromverwaltungseinheit empfängt.
  4. Computersystem nach Anspruch 3, wobei der Speicher-Controller einen Arbeitsspeicher zum Speichern der Speicherinitialisierungsanweisungen aufweist.
  5. Computersystem nach jedem vorstehenden Anspruch, wobei der Controller eine Hardware-Zustandsmaschine zum Initialisieren des externen Speichers aufweist.
  6. Computersystem nach jedem der Ansprüche 3 bis 5, wobei der Prozessor, Befehlsspeicher, die Stromverwaltungseinheit und der Speicher-Controller als Bauteile des gleichen integrierten Schaltkreises bereitgestellt sind.
  7. Computersystem nach jedem vorstehendem Anspruch, wobei der externe Speicher ein FLASH-Speicher oder anderes EEPROM ist.
  8. Verfahren zum Überführen eines Computersystems aus einem Ruhe- oder ausgeschalteten Zustand in einen eingeschalteten Zustand, wobei das Computersystem einen Prozessor, einen externen Speicher, der außerhalb des Prozessors liegt, eine Stromverwaltungseinheit und einen Speicher-Controller aufweist, das Verfahren umfassend: Empfangen, an der Stromverwaltungseinheit, einer Weckrufanfrage; Wecken des Speicher-Controllers; dann, zu einem späteren Zeitpunkt, Wecken des Prozessors.
  9. Verfahren nach Anspruch 8, umfassend das Initialisieren des externen Speichers nach dem Wecken des Speicher-Controllers und vor dem Wecken des Prozessors.
  10. Verfahren nach Anspruch 8 oder Anspruch 9, wobei das Initialisieren des externen Speichers das Abrufen von Speicherinitialisierungsanweisungen von einem Befehlsspeicher umfasst, und das Laden dieser Anweisungen in den Speicher-Controller.
  11. Verfahren nach jedem der Ansprüche 8 bis 10, wobei das Initialisieren des externen Speichers das Senden von Befehlen an den externen Speicher unter Verwendung einer Hardware-Zustandsmaschine umfasst.
  12. Verfahren nach jedem der Ansprüche 8 bis 11, wobei, nachdem der Prozessor geweckt wurde, er übernimmt und Daten mit dem externen Speicher austauscht.
DE102015226837.3A 2015-12-30 2015-12-30 Initialisierung von Speicher in einem Computersystem Pending DE102015226837A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102015226837.3A DE102015226837A1 (de) 2015-12-30 2015-12-30 Initialisierung von Speicher in einem Computersystem
US15/389,535 US10921999B2 (en) 2015-12-30 2016-12-23 Initialization of memory in a computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015226837.3A DE102015226837A1 (de) 2015-12-30 2015-12-30 Initialisierung von Speicher in einem Computersystem

Publications (1)

Publication Number Publication Date
DE102015226837A1 true DE102015226837A1 (de) 2017-07-06

Family

ID=59068897

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015226837.3A Pending DE102015226837A1 (de) 2015-12-30 2015-12-30 Initialisierung von Speicher in einem Computersystem

Country Status (2)

Country Link
US (1) US10921999B2 (de)
DE (1) DE102015226837A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111225434B (zh) * 2019-12-09 2021-04-09 厦门骐俊物联科技股份有限公司 一种应用程序响应方法、系统、存储介质及通信模块
CN111782290B (zh) * 2020-06-02 2023-10-27 青岛信芯微电子科技股份有限公司 一种数据处理方法及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230274B1 (en) * 1998-11-03 2001-05-08 Intel Corporation Method and apparatus for restoring a memory device channel when exiting a low power state
TWI351818B (en) * 2005-01-11 2011-11-01 Altera Corp Power management of components having clock proces
US9424896B2 (en) * 2012-06-22 2016-08-23 Nxp B.V. Method and system for fast initialization of a memory unit

Also Published As

Publication number Publication date
US20170199696A1 (en) 2017-07-13
US10921999B2 (en) 2021-02-16

Similar Documents

Publication Publication Date Title
DE102012212441B4 (de) Verfahren zum Eintreten in und Verlassen eines Schlafmodus in einer Graphikverarbeitungseinheit
DE112015002522B4 (de) System-on-a-chip mit always-on-prozessor, der das SOC rekonfiguriert und Nur-Speicher-Kommunikationsmodus unterstützt
DE112005002672B4 (de) Dynamische Neukonfiguration eines Cache-Speichers
DE102010002636B4 (de) Reduktion des Stromverbrauchs in einem Mikrocontroller
DE60128396T9 (de) Computer-peripheriegerät, das betreibbar bleibt, wenn die operationen des zentralprozessors suspendiert werden
DE102020133738A1 (de) Firmware-update-techniken
DE102014003704B4 (de) Plattform-agnostisches Powermanagement
DE112007003113B4 (de) Reduzieren von Leerlauf-Verlustleistung in einem integrierten Schaltkreis
DE202009011250U1 (de) Elektronisches Stromspargerät für Computer-Hauptplatinen (Motherboards) im "Standby-Speicher"-Zustand ("Suspend to Memory"-Status)
DE102013110340A1 (de) Ein-Chip-System mit der Fähigkeit zum Steuern einer Leistungsversorgung gemäß einer Datentransaktion und Verfahren zum Betreiben desselben
DE102016109363A1 (de) Host-port für serielle periphere schnittstellen
DE112010002425B4 (de) Delegieren einer Anfrageoperation an eine ander Einrichtung
DE112007001987T5 (de) Überführen einer Rechenplattform in einen Systemzustand niedriger Leistung
DE112006002056T5 (de) Erhöhung der Arbeitsleistung eines oder mehrerer Kerne in Multikernprozessoren
DE112009004900T5 (de) Vertagen von Speicheroperationen zum Reduzieren von Leselatenz in Speicherfeldern
DE112011102822T5 (de) Leistungsoptimierte Interrupt-Abgabe
DE112019000662T5 (de) System, Vorrichtung und Verfahren für ein Handschlag-Protokoll für Niedrigleistungszustandsübergänge
DE102019106126A1 (de) Massenspeicherungsvorrichtung mit vom Host eingeleiteter Pufferausräumung
DE60132424T2 (de) Taktschutz für gemeinsame Komponenten einer Multiprozessor-DSP Vorrichtung
DE102015202513A1 (de) Vorrichtung und Verfahren zur Datenspeicherung sowie Datenverarbeitungssystem damit
DE112013004065T5 (de) Schutzschema für einen eingebetteten Code
DE102015226837A1 (de) Initialisierung von Speicher in einem Computersystem
DE112020006716T5 (de) Plattformsteuerungshub(PCH)-Chipsätze in Plattformen als erweiterte(r) EA-Expander(s)
DE102018005759A1 (de) Verbinden von beschleunigerressourcen unter verwendung einesswitches
WO2016074837A1 (de) Verfahren und speicherverwaltungsvorrichtung zum übertragen von daten innerhalb eines computer-systems, speichersystem und computer-system

Legal Events

Date Code Title Description
R012 Request for examination validly filed