DE60211921T2 - Architektur und system von einem generischen seriellen port - Google Patents

Architektur und system von einem generischen seriellen port Download PDF

Info

Publication number
DE60211921T2
DE60211921T2 DE60211921T DE60211921T DE60211921T2 DE 60211921 T2 DE60211921 T2 DE 60211921T2 DE 60211921 T DE60211921 T DE 60211921T DE 60211921 T DE60211921 T DE 60211921T DE 60211921 T2 DE60211921 T2 DE 60211921T2
Authority
DE
Germany
Prior art keywords
clock
shift register
state machine
output
bits
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.)
Expired - Lifetime
Application number
DE60211921T
Other languages
English (en)
Other versions
DE60211921D1 (de
Inventor
Jean-Louis Lexington TARDIEUX
Joern Soerensen
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.)
MediaTek Inc
Original Assignee
Analog Devices Inc
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23225453&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE60211921(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Analog Devices Inc filed Critical Analog Devices Inc
Publication of DE60211921D1 publication Critical patent/DE60211921D1/de
Application granted granted Critical
Publication of DE60211921T2 publication Critical patent/DE60211921T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • 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
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION, OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/0802Details of the phase-locked loop the loop being adapted for reducing power consumption
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION, OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/16Indirect frequency synthesis, i.e. generating a desired one of a number of predetermined frequencies using a frequency- or phase-locked loop
    • H03L7/18Indirect frequency synthesis, i.e. generating a desired one of a number of predetermined frequencies using a frequency- or phase-locked loop using a frequency divider or counter in the loop
    • H03L7/183Indirect frequency synthesis, i.e. generating a desired one of a number of predetermined frequencies using a frequency- or phase-locked loop using a frequency divider or counter in the loop a time difference being used for locking the loop, the counter counting between fixed numbers or the frequency divider dividing by a fixed number
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3814Wireless link with a computer system port
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03LAUTOMATIC CONTROL, STARTING, SYNCHRONISATION, OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
    • H03L7/00Automatic control of frequency or phase; Synchronisation
    • H03L7/06Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
    • H03L7/08Details of the phase-locked loop
    • H03L7/085Details of the phase-locked loop concerning mainly the frequency- or phase-detection arrangement including the filtering or amplification of its output signal
    • H03L7/095Details of the phase-locked loop concerning mainly the frequency- or phase-detection arrangement including the filtering or amplification of its output signal using a lock detector
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/06Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks
    • 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S331/00Oscillators
    • Y10S331/02Phase locked loop having lock indicating or detecting means

Description

  • Verwandte Anmeldungen
  • Diese Anmeldung beansprucht nach Artikel 35 US Code § 119 (e) die Priorität der am 29. August 2001 eingereichten US Patentanmeldung mit dem Titel „Digital Baseband Processor", von Allen, et al. Die oben genannte Patentanmeldung wird hierdurch durch Bezug hierin in ihrer Vollständigkeit aufgenommen.
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft im Allgemeinen programmierbare serielle Anschlüsse und insbesondere programmierbare serielle Hochgeschwindigkeitsanschlüsse.
  • Hintergrund der Erfindung
  • Auf dem Gebiet der elektronischen Schaltungen und in der Datenkommunikation sind viele Anordnungen serieller Anschlüsse bekannt. Anordnungen enthalten z. B. statische serielle Anschlüsse zum Übertragen und Empfangen von Daten eines ausgewählten seriellen Kommunikationsprotokolls (z. B. universale asynchrone Empfangs-Sendevorrichtungen (UART)), sowie konfigurierbare serielle Anschlüsse (z. B. Mikroprozessoren mit softwaregesteuerten seriellen Anschlüssen). Konfigurierbare serielle Anschlüsse bieten die Möglichkeit eine Vielzahl von Protokollen mit einer einzelnen Vorrichtung mit seriellem Anschluss zu bedienen bzw. betreiben. Statische und konfigurierbare serielle Anschlüsse werden für einen breiten Bereich von Anwendungen einschließlich der Kommunikation mit Anzeigevorrichtungen, sowie der Kommunikation mit Modems verwendet, und dienen als ein Universalsystemverbinder (USC = Universal System Connector).
  • Es wurden zahlreiche serielle Kommunikationsprotokolle (hierin ebenfalls als Protokolle bezeichnet) veröffentlicht (z. B. um einige zu nennen, UART, I2C, HC11, IrDa), von welchen jedes spezifische Parameter definiert, nach welchen serielle Daten-Bits zwischen seriellen Anschlüssen kommuniziert werden. Die Parameter, welche ein Protokoll definieren, können Faktoren wie z. B. den Zeitablauf der empfangenen oder gesendeten Bits, elektrische Parameter (z. B. Signalpolarität, Leitungstreibercharakteristiken wie z. B. Open-Source oder Open-Collector Ausgabe Impedanzen, etc.), und logische Definitionen von Bit-Bedeutungen und Sequenzen enthalten.
  • Ein Beispiel eines konfigurierbaren seriellen Anschlusses wird durch die Motorola M68HC11 Familie von Mikrocontrollern vorgesehen, welche einen im Stand der Technik als Motorola synchrone serielle Peripherschnittstelle (SPI) bekannten programmierbaren seriellen Anschluss enthält. Solche seriellen Schnittstellen können aus verschiedenen Gründen nachteilhaft sein. Der Prozessor muss z. B. ein Softwareprogramm zum Steuern des seriellen Anschlusses ausführen und sämtliche der über Signalwege zu sendenden Daten-Bits passieren durch den Prozessor, wodurch der Prozessor über die Belastung hinaus, welche dem Prozessor auferlegt wird, während dieser die Aufgabe durchführt, für welche er ansonsten verwendet wird, belastet. Da die serielle Hardware ein leistungsverbrauchendes Teil des Prozessors ist, wird wenn immer der Prozessor ein Softwareprogramm ausführt, zusätzliche Leistung verbraucht, auch falls der serielle Anschluss nicht aktiv ist.
  • Als eine Alternative zu Mikrocontroller-gesteuerten programmierbaren seriellen Anschlüssen, sind programmierbare serielle Anschlüsse entwickelt worden, welche eine Zustandsmaschine implementieren, um den Prozessor von der Bürde zu entlasten, viele Aspekte des seriellen Anschlusses steuern zu müssen. Ein Beispiel eines solchen programmierbaren seriellen Anschlusses ist in der am 3. November 2000 eingereichten US Patentanmeldung „Generic Serial Port Architecture and System" von Sorenson mit der Seriennummer 09/706,450 gegeben.
  • 1 ist ein Blockdiagramm eines solchen programmierbaren seriellen Anschlusses 100. In 1 empfängt ein Schieberegister 110, wenn dieses im Sendemodus beschrieben wird, einen parallelen Satz von Daten-Bits auf den Kanälen 102 von einem Pufferspeicher 120 und gibt die Bits als eine serielle Ausgabe auf Kanal 104 (über einen Treiber 180) unter der Steuerung einer Zustandsmaschine 120 aus. Wenn das Schieberegister 110 im Gegensatz dazu in einem Empfangsmodus betrieben wird, empfängt dieses eine serielle Eingabe auf Kanal 104 und gibt einen parallelen Satz von Daten-Bits auf den Kanälen 102 aus.
  • Der Begriff (Zustandsmaschine) ist hierin als eine Vorrichtung definiert, welche einen existierenden Status (z. B. einen Programmzähler und eine Vielzahl von anderen Registern) speichert und nach Empfangen einer Eingabe (z. B. einer Instruktion oder eines Befehls) in einen neuen Status wechselt und/oder eine deterministische Aktion oder eine Ausgabe einleitet, welche in Reaktion auf den existierenden Status und die Eingabe stattfindet. Während Zustandsmaschinen eine arithmetische logische Einheit (ALU) oder andere Schaltungen, welche im herkömmlichen Sinne mit Mikroprozessoren verbunden sind, enthalten können, schließt der Begriff Zustandsmaschine, wie hierin definiert, solche Schaltungen oder Elemente nicht aus.
  • In dem programmierbaren seriellen Anschluss 100 werden Instruktionen, welche Regeln zum Implementieren von zwei oder mehreren Protokollen entsprechen, in einem Speicher 130 gespeichert. Unter Verwendung der Instruktionen des Speichers 130 führt die Zustandsmaschine 120 Instruktionen aus, welche einem durch den Controller 150 ausgewähltem Protokolle entsprechen, um eine Ausgabe entsprechend einem angegebenen Protokoll auf Kanal 104 vorzusehen. Ein Bitzähler 170 sieht an die Zustandsmaschine 120 eine numerische Anzahl der gesendeten Bits vor, um es zu erleichtern, eine Ausgabe entsprechend dem ausgewählten Protokoll vorzusehen, da das Verarbeiten eines Bits häufig von der Position in entweder den parallelen Kanälen 102 oder dem seriellen Empfangs- oder Sendebitstream auf Kanal 102 abhängt.
  • Eine Ausgabe wird typischerweise durch einen Treiber 180 geleitet, um eine Ausgabe vorzusehen, welche spezifische elektrische Parameter aufweist bzw. mit diesen kompatibel ist. In herkömmlichen, auf Zustandsmaschinen basierenden programmierbaren seriellen Anschlüssen (z. B. der programmierbare serielle Anschluss 100) erfordert die Ausführung von Instruktionen zum Vorsehen einer Ausgabe entsprechend einem ausgewählten Protokoll, dass die Zustandsmaschine 120 von dem Taktgenerator 160 ein Taktimpuls empfängt und an das Schieberegister 110 ein Taktsignal vorsieht, um die Ausgabe jedes Bits von dem Schieberegister 110 je nachdem an den Kanal 104 oder dem Pufferspeicher 120 zu steuern, und erfordert, dass die Zustandsmaschine eine durch einen Bitzähler 170 vorgesehene Bitanzahl bzw. Zählung beibehält und verarbeitet.
  • Das Vorsehen einer Ausgabe entsprechend einem ausgewählten Protokoll erfordert, dass eine Ausgabe zu angegebenen Zeiten vorgesehen wird. In manchen Protokollen muss eine Ausgabe auf Kanal 104 z. B. innerhalb eines bestimmten bzw. angegebenen Zeitraums auf den Empfang eines Zeitablaufsignals (z. B. eine ansteigende Flanke auf einem Kanal 190) durch den programmierbaren seriellen Anschluss 100 hin erfolgen. Da das Zeitintervall zwischen dem Empfang des Taktsignals und dem Vorsehen der Ausgabe sehr kurz sein kann muss eine Instruktion, um eine Ausgabe zu erreichen, in der Lage sein kurze Ausführungszeiten aufzuweisen, sonst kann der serielle Anschluss eine unzureichende Datenausgabegeschwindigkeit aufweisen und in manchen Fällen kann es sein, dass ein Betrieb von manchen Protokollen nicht möglich ist.
  • 2 ist ein Ablaufdiagramm 200 eines typischen Satzes von Instruktionen für einen herkömmlichen programmierbaren seriellen Anschluss, um eine Standardausgabe (z. B. eine UART-kompatible Ausgabe) zu erreichen. Bei Schritt 205 wartet die Zustandsmaschine auf eine Anzeige, das das Schieberegister mit Daten gefüllt ist (d. h. einem parallelen Datensatz). Bei Schritt 210 lädt die Zustandsmaschine den Treiber mit einem Startzustand (z. B. ein logischer Wert 1 oder 0). Bei Schritt 220 initialisiert die Zustandsmaschine den Bitzähler (z. B. eine Anfangsbitanzahl wird geladen). Bei Schritt 240 identifiziert die Zustandsmaschine die Codezeilen, der Schleife, durch welche Daten von dem Schieberegister verschoben werden. Das erste Daten-Bit wird gesendet und für so viele Taktzyklen wie für das Protokoll notwendig sind, beibehalten, und der Bitzähler wird bei den Schritten 250 bzw. 260 durch die Zustandsmaschine gesenkt. Nachfolgende Daten-Bits werden gesendet und der Bitzähler wird durch die Zustandsmaschine (bei Schritt 270) gesenkt, bis der Bitzähler Null erreicht. Nachdem alle Daten-Bits gesendet sind, veranlasst die Zustandsmaschine, dass ein Paritäts-Bit bei Schritt 280 gesendet wird. Bei Schritt 290 wird der Treiber schließlich in einen Stop-Zustand versetzt.
  • Ein Verfahren zum Erreichen schnellerer Ausführungszeiten ist es, die Taktrate, mit welcher die Zustandsmaschine Instruktionen ausführt, zu erhöhen, so dass eine größere Anzahl von Instruktionen in einem gegebenen Zeitintervall ausgeführt werden (z. B. das Zeitintervall zwischen einem Zeitsteuersignal und dem Beginn der Ausgabe von seriellen Daten-Bits); eine schnellere Taktrate kann jedoch schnellere und teurere elektronische Komponenten erfordern. Eine schnellere Taktrate kann zusätzlich einen erhöhten Leistungsverbrauch erfordern. Es wird dementsprechend ein programmierbarer serieller Anschluss benötigt, welcher in der Lage ist, notwendige Eingabe (z. B. Zeitsteuersignale) zu empfangen und verarbeiten, und notwendige Ausgaben mit einer relativ hohen Geschwindigkeit vorzusehen, während dieser eine relativ geringe Taktgeschwindigkeit beibehält. Es wird darüber hinaus ein programmierbarer serieller Anschluss benötigt, welcher in der Lage ist, entsprechend einer breiten Vielfalt von Protokollen Ausgaben vorzusehen und Eingaben anzunehmen.
  • WO02/42919 offenbart eine Ablaufsteuerung, welche Instruktionen basierend auf einer Funktionstaktfrequenz ausführt, um Eingabe/Ausgabefunktionen in einer seriellen peripheren Schnittstelle durchzuführen. Der Funktionstakt weist eine Frequenz auf, welche ein zweifaches des Quelltaktsignals beträgt. Ein Funktionstaktgenerator erzeugt das Funktionstaktsignal und wählt die zu entschlüsselnde Instruktion aus. Die Instruktion gibt wahlweise die Frequenz des Funktionstaktsignals vor, so dass dieses während der Zeitdauer des Funktionstaktsignals, während welcher die vorbestimmte Instruktion entschlüsselt wird, um eine einzelne Instruktion während des Quelltaktsignals auszuführen, der Frequenz des Quelltaktsignals gleicht.
  • Zusammenfassung der Erfindung
  • Entsprechend einem ersten Aspekt der vorliegenden Erfindung ist ein programmierbarer serieller Anschluss vorgesehen, aufweisend:
    ein erstes Schieberegistermodul, welches ein Schieberegister enthält, dass einen Eingabekanal zum Empfangen einer parallelen Eingabe einer ersten Vielzahl von Bits einen ersten Ausgabekanal zum Vorsehen einer seriellen Ausgabe einer zweiten Vielzahl von Bits, sowie ein weiteres Register zum Steuern des Schieberegistermoduls aufweist;
    einen Taktgenerator; und
    eine erste Zustandsmaschine,
    dadurch gekennzeichnet, dass der Taktgenerator ein erstes Taktsignal an das erste Schieberegistermodul vorsieht, und der Taktgenerator, sowie das erste Schieberegistermodul auf Instruktionen von der Zustandsmaschine reagieren, so dass die Zustandsmaschine zumindest eine Instruktion ausgeben kann, um eine Ausgabe der zweiten Vielzahl von Bits von dem Schieberegister ohne eine weitere Steuerung durch die Zustandsmaschine zu bewirken.
  • Der Taktgenerator kann ferner einen zweiten Ausgabekanal an ein zweites Schieberegistermodul aufweisen, wobei der zweite Ausgabekanal ein zweites Taktsignal, welches eine vorbestimmte Anzahl von Impulsen aufweist, mit einer vorbestimmten Frequenz in Reaktion auf zumindest eine Instruktion vorsieht. Der Taktgenerator kann ferner optional einen zweiten Ausgabekanal an eine Zustandsmaschine aufweisen, wobei der zweite Ausgabekanal ein zweites Taktsignal an die Zustandsmaschine vorsieht. In manchen Ausführungsformen weist der Taktgenerator ferner ein mit dem zweiten Ausgabekanal gekoppeltes Gate auf, so dass das zweite Taktsignal durch das Gate passiert und wobei das Gate durch die zumindest eine der Instruktionen, welche die vorbestimmte Anzahl von Impulsen anzeigt, und die vorbestimmte Frequenz steuerbar ist. In anderen Ausführungsformen des ersten Aspekts der Erfindung weist der Taktgenerator ferner einen Teiler auf, welcher mit dem zweiten Ausgabekanal gekoppelt ist, um das zweite Taktsignal zu empfangen, sowie mit dem ersten Ausgabekanal gekoppelt ist, um das erste Taktsignal vorzusehen, wodurch das zweite Taktsignal geteilt wird, um das erste Taktsignal zu bilden.
  • Die Zustandsmaschine kann konfiguriert und angeordnet sein, um Instruktionen entsprechend einer Vielzahl von seriellen Kommunikationsprotokollen vorzusehen. Jedes der zweiten Vielzahl von Bits kann in Reaktion auf einen Taktimpuls der zweiten Vielzahl von Impulsen ausgegeben werden.
  • In manchen Ausführungsformen weist das Schieberegistermodul ferner einen Bitzähler auf, wobei der Bitzähler konfiguriert ist, einen numerischen Zählwert der seriellen Ausgabe der zweiten Vielzahl von Bits beizubehalten. Der Bitzähler wird optional in Reaktion auf einen Taktimpuls der zweiten Vielzahl von Impulsen gesenkt. Jedes der zweiten Vielzahl von Bits kann ein Daten-Bit, ein Paritäts-Bit, oder ein Stop-Bit sein. Jedes der zweiten Vielzahl von Bits wird optional basierend auf dem Bit-Zählwert ausgewählt.
  • Das Schieberegistermodul kann ferner einen Paritätsgenerator aufweisen. In manchen Ausführungsformen gibt das Scheiberegistermodul von dem Paritätsgenerator in Reaktion auf einen Taktimpuls der zweiten Vielzahl von Impulsen ein Paritäts-Bit aus. Der programmierbare serielle Anschluss kann ferner einen programmierbaren Treiber aufweisen, welcher mit dem ersten Ausgabekanal gekoppelt ist, um die elektrischen Parameter der seriellen Ausgabe zu steuern. Ein Interrupt-Verarbeitungsmodul kann mit der ersten Zustandsmaschine gekoppelt sein, um einen Interrupt bzw. eine Unterbrechung der Zustandsmaschine zu bewirken.
  • Der programmierbare serielle Anschluss kann ferner ein zweites Schieberegistermodul aufweisen, wobei der zweite Taktgenerator mit dem zweiten Schiebereigistermodul gekoppelt ist, um ein zweites Taktsignal vorzusehen, welches eine zweiten Vielzahl von Taktimpulsen aufweist, und wobei das zweite Schieberegistermodul in Reaktion auf das zweite Taktsignal eine zweite serielle Ausgabe vorsieht.
  • Das Schieberegistermodul enthält vorteilhafterweise einen Bit-Zähler, welcher konfiguriert ist, einen Zählwert der Anzahl von Bits beizubehalten, welche durch den seriellen Anschluss ausgegeben werden. Der Bit-Zähler kann in Reaktion auf ein Taktimpuls gesenkt werden. In manchen Ausführungsformen weist das Schieberegistermodul ferner einen Paritätsgenerator auf. Das Schieberegistermodul kann in Reaktion auf den numerischen Zählwert ein Paritäts-Bit vorsehen. Jedes der Vielzahl von Bits, welches der seriellen Ausgabe entspricht, kann ein Daten-Bit, ein Paritäts-Bit, oder ein Stop-Bit sein. Jedes der Vielzahl der Bits, welches der seriellen Ausgabe entspricht, kann optional basierend auf dem numerischen Zählwert ausgewählt werden.
  • Entsprechend einem zweiten Aspekt der vorliegenden Erfindung ist ein Verfahren zum Steuern eines Schieberegistermoduls vorgesehen, welches ein erstes Schieberegister aufweist, das eine erste Vielzahl von Bits enthält, um eine serielle Ausgabe entsprechend dem ausgewählten einer Vielzahl von seriellen Kommunikationsprotokollen vorzusehen, wobei das erste Schieberegistermodul mit einem Taktgenerator und einer Zustandsmaschine gekoppelt ist und das Verfahren aufweist.
  • Entsprechend dem ausgewählten Protokoll, Auswählen einer durch die Zustandsmaschine unter einer Vielzahl von Instruktionssequenzen auszuführende Instruktionssequenz, wobei jede der Instruktionssequenzen einem Protokoll entspricht; Steuern des Taktgenerators entsprechend einer Instruktion der ausgewählten Instruktionssequenz um eine erste Vielzahl von Taktimpulsen an das Schieberegistermodul vorzusehen, und Ausgeben einer zweiten Vielzahl von Bits, welche der ersten Vielzahl von Bits entsprechen in Reaktion auf die Taktimpulse und Ausführung der Instruktionssequenz ohne weitere Steuerung durch die Zustandsmaschine.
  • Kurze Beschreibung der Zeichnungen
  • Darstellende, nicht begrenzende Ausführungsformen der vorliegenden Erfindung werden anhand von Beispielen mit Bezug auf die begleitenden Zeichnungen beschrieben, in welchen gleiche Bezugszeichen zum Bezeichnen der gleichen Komponenten in unterschiedlichen Figuren verwendet werden. Es zeigt:
  • 1 ist ein Blockdiagramm eines herkömmlichen programmierbaren seriellen Anschlusses;
  • 2 ist ein Ablaufdiagramm eines typischen Instruktionssatzes für einen herkömmlichen programmierbaren seriellen Anschluss, um eine Standardausgabe (z. B. eine UART kompatible Ausgabe) zu erreichen;
  • 3A ist ein funktionelles Blockdiagramm einer ersten beispielhaften Ausführungsform eines programmierbaren seriellen Anschlusses entsprechend von zumindest manchen Aspekten der vorliegenden Erfindung;
  • 3B stellt ein Zeitablaufdiagramm für einen beispielhaften Ausgabe-Bit-Stream eines Schieberegistermoduls dar, welches konfiguriert ist, automatisch ein Paritäts-Bit und ein Stop-Bit auszugeben;
  • 4A ist ein funktionelles Blockdiagramm einer zweiten beispielhaften Ausführungsform eines programmierbaren seriellen Anschlusses entsprechend von zumindest manchen Aspekten der vorliegenden Erfindung;
  • 4B ist ein schematisches Diagramm eines beispielhaften Interrupt-Verarbeitungsmoduls;
  • 5 ist ein schematisches Diagramm einer beispielhaften Ausführungsform eines Transferregister-Schiebemoduls entsprechend von zumindest manchen Aspekten der vorliegenden Erfindung;
  • 6 ist ein schematisches Diagramm eines Beispiels eines Treibers (z. B. der Treiber in 3A), welcher in einem programmierbaren Anschluss verwendet werden kann;
  • 7 ist ein schematisches Diagramm eines Beispiels einer Ausführungsform eines Taktgenerators zur Verwendung mit zumindest manchen programmierbaren seriellen Anschlüssen entsprechend von Aspekten der vorliegenden Erfindung;
  • 8A stellt eine beispielhafte Taktgeneratorausgabe für einen Taktgenerator dar,. welcher einen Taktimpuls in einem Standardmodus erzeugt;
  • 8B stellt eine Taktgeneratorausgabe für einen Taktgenerator dar, welcher in einem Leistungssparmodus betrieben wird;
  • 9 ist ein Ablaufdiagramm einer beispielhaften Instruktionssequenz für einen programmierbaren seriellen Anschluss entsprechend von manchen Aspekten der vorliegenden Erfindung, um eine Standardausgabe (z. B. eine UART kompatible Ausgabe) zu erreichen;
  • 10A ist eine schematische Darstellung einer geeigneten Speicherordnung, welche zur Verwendung im Rahmen der vorliegenden Erfindung geeignet ist;
  • 10B ist eine schematische Darstellung einer beispielhaften Zustandsmaschinen-Dekodierarchitektur, welche zur Verwendung im Rahmen der in 10A gezeigten Speicherordnung geeignet ist; und
  • 11A und 11B sind Tabellen, welche einen beispielhaften Satz von Binärimplementierungen eines Instruktionssatzes darstellen.
  • Ausführliche Beschreibung
  • 3A ist ein funktionelles Blockdiagramm einer ersten beispielhaften Ausführungsform eines programmierbaren seriellen Anschlusses 300 entsprechend von zumindest manchen Aspekten der vorliegenden Erfindung. Der programmierbare serielle Anschluss 300 überträgt einen parallelen Satz von Daten-Bits, welcher eine Vielzahl von Bits (z. B. ein Byte von Daten) aufweist, auf den Kanälen 302, und sieht eine serielle Ausgabe einer zweiten Vielzahl von Bits, welche der ersten Vielzahl von Bits entsprechen, auf einem Kanal 304 vor. Der programmierbare serielle Anschluss 300 kann ebenfalls verwendet werden, eine serielle Eingabe auf Kanäle 304 zu empfangen und eine parallele Ausgabe auf den Kanälen 302 vorzusehen. Der programmierbare serielle Anschluss 300 kann des weiteren im Simplex oder Halb-Duplexbetrieb betrieben werden. In der nachfolgenden Erörterung wird der Schwerpunkt hauptsächlich auf den Paralleleingabe/Serielleausgabe-Modus gelegt, da der Serielleingabe/Paralleleausgabe-Modus gewöhnlich ohne weitere Ausführungen ersichtlich ist.
  • Der programmierbare serielle Anschluss 300 enthält eine Zustandsmaschine 320, einen Taktgenerator 360 (hierin ebenfalls als Taktimpulsgenerator bezeichnet), ein Schieberegister 312 und einen Treiber 380. Ein Controller 350 (herkömmlicher Natur) steuert einige Funktionen des programmierbaren seriellen Anschlusses 300, z. B. durch Initialisieren der obigen Komponenten, welche den programmierbaren seriellen Anschluss 300 aufweisen, durch Auswählen eines Protokolls, unter welchem die serielle Kommunikation stattfindet, und Füllen des Pufferspeichers 320.
  • Wie nachstehend ausführlicher beschrieben ist, steuert die Zustandsmaschine 320 den Betrieb des Schieberegisters 312 und des Taktgenerators 360 durch Vorsehen von Befehlen an jede von ihnen, einschließlich dem Steuern von Konfigurationsregistern jeder von ihnen. Die Zustandsmaschine 320 führt Instruktionen entsprechend einem durch den Controller 350 ausgewähltem Protokollprogramm durch. Der Controller sieht z. B. eine Programmtextzeilenzahl von einem Satz von Instruktionen vor, welche einem gewähltem Protokollprogramm entsprechend vor, welches in einem Speicher 330 gespeichert ist. Der Speicher kann eine Vielzahl von Instruktionen enthalten, welche einem unterschiedlichen Protokoll entsprechen.
  • Ein Schieberegistermodul 312 empfängt eine parallele Eingabe einer Vielzahl von Bits von einem Pufferspeicher 320 auf den Kanälen 302, und sieht eine serielle Ausgabe, welche der Vielzahl von Bits entspricht, an den Treiber 380 vor. Das Schieberegistermodul 312 enthält ein Schieberegister 310, um auf dem Kanal 302 empfangene Daten zu seriallisieren bzw. in serieller Reihenfolge zu erstellen, sowie einen Bitzähler 370. Der Bitzähler 370 ist konfiguriert, eine numerierte Anzahl von den Bits serieller Daten beizubehalten, welche durch das Schieberegistermodul 312 ausgegeben werden.
  • Der Taktgenerator 360 ist mit der Zustandsmaschine 320 gekoppelt, und sieht einen oder mehrere Taktimpulse an das Schieberegister 310 in Reaktion auf zumindest eine Instruktion der Zustandsmaschine 320 vor. Die Taktimpulse steuern die Zeitvorgabe des Schiebens von Daten in das und aus dem Schieberegistermodul 312. Der Taktgenerator 360 weist einen Eingabekanal auf, um zumindest eine Instruktion von der Zustandsmaschine 320 zu empfangen, und einen Ausgabekanal, um Taktimpulse an die Zustandsmaschine 320 vorzusehen. In Reaktion auf z. B. zumindest eine Instruktion, kann der Taktgenerator 360 eine vorbestimmte Anzahl von Taktimpulsen an das Schieberegister 310 mit vorbestimmter Frequenz zu einem vorbestimmten Zeitpunkt (oder nach einer vorbestimmten Verzögerung) vorsehen. In einigen Ausführungsformen sieht die Zustandsmaschine 320 einen einzelnen Befehl an den Taktgenerator 360 vor, um eine vorbestimmte Anzahl von Impulsen mit einer vorbestimmten Frequenz zu erzeugen, um die Ausführungszeitdauer, welche zum Steuern des Taktgenerators notwendig ist, zu verringern. Die Anzahl der durch die Zustandsmaschine durchgeführten Instruktionen, um eine Ausgabe entsprechend einem gewählten Protokoll zu erreichen ist deshalb relativ gesehen geringer und die Gesamtdurchführungszeitdauer zum Erreichen einer Ausgabe ist relativ kurz; der programmierbare serielle Anschluss 300 ist somit in der Lage, Ausgaben vorzusehen und Eingaben entsprechend einer breiten Vielfalt von Protokollen zu akzeptieren. Die Zustandsmaschine 320 und der Taktgenerator 360 bilden zusammen ein Schieberegistersteuermodul 355 zum Steuern des Schieberegistermoduls 312 aus.
  • In Reaktion auf einen von dem Taktgenerator 360 empfangenen Taktimpuls (welchem andere Taktimpulse für andere Zwecke vorangegangen sein können) gibt das Schieberegistermodul 312 ein einzelnes Datenbit an den Treiber 380 aus, und der Bitzähler 370 wird gesenkt oder erhöht (abhängig davon, ob ein Protokoll angibt, dass das Bit mit dem höchsten Stellenwert oder das Bit mit dem geringsten Stellenwert zuerst übertragen werden soll). Das Schieberegister 312 kann derart konfiguriert sein, so dass für ausgewählte Protokolle der erste Taktimpuls, welcher empfangen wird, nachdem der Zähler Null erreicht, automatisch in einer Ausgabe des Paritäts-Bits resultiert, und der zweite empfangene Taktimpuls, nachdem der Zähler Null erreicht in der Ausgabe eines Stop-Bits resultiert.
  • 3B stellt ein Zeitablaufdiagramm für einen beispielhaften Ausgabe-Bitstream 390 von einem Schieberegistermodul 312 dar, welches konfiguriert ist, automatisch ein Paritäts-Bit und ein Stop-Bit auszugeben. Zusätzlich zu dem Ausgabe-Bitstream 390 sind ein entsprechender Bit-Zählwert 392 des Bitzählers 370 (in 3A oben gezeigt) und ein Taktsignal 394 des Taktgenerators 360 (in 3A gezeigt) dargestellt. In dem beispielhaften Bitstream 390, wird angenommen, dass die Daten-Bits an der ansteigenden Flanke des Taktsignals 394 ausgegeben werden. Nach Empfang jeder der jeweiligen Flanken 396a bis d (entsprechend der Bit-Zählwerte 1 bis 4), wird ein entsprechendes Datenbit ausgegeben. Nach Empfang der ersten ansteigenden Flanke 396e, wenn der Bit-Zählwert Null beträgt, wird ein Paritäts-Bit ausgegeben; und nach Empfang der zweiten ansteigenden Flanke 396f, wenn der Bit-Zählwert Null beträgt, wird ein Stop-Bit ausgegeben.
  • Nochmals auf 3A Bezug nehmend ist der Treiber 380 mit dem Kanal 304 gekoppelt, um Leitungssteuer- und Empfangsschaltungen und für das gewählte Protokoll erforderliche Parameter vorzusehen. Der Treiber 380 kann z. B. die Wahl einer gewünschten Leitungstreiber-Schaltungsart, wie z. B. einer Open-Source oder Open-Collector Leitungstreiberschaltung, die Wahl der Polarität eines Ausgabesignals und die Wahl eines Hochimpedanzzustands erlauben. Der Treiber 380 kann zusätzlich die Wahl einer Datenquelle erlauben (z. B. Ausgabe an einem festen logischen Wert (d. h. eins oder zwei), Eingabe/Ausgabe von einer Zustandsmaschine, oder eine Eingabe/Ausgabe von einem Schieberegister). Der Treiber kann ebenfalls Eingabedaten/Ausgabedaten Fehlzuordnungen erfassen. Im Halb-Duplexbetrieb kann der Treiber 380 zusätzlich auf dem Kanal 304 gesendete und empfangene Daten multiplexen. Der Treiber 380 ist vorzugsweise in Reaktion auf ein Protokollauswahlsignal, welches wie gezeigt auf Leitung 381 bereit gestellt wird, programmierbar, um protokollbezogene Auswahlen und Betriebe auszuführen. Das Protokollauswahlsignal kommt direkt oder indirekt von dem Kontrolle 350. Während der Treiber 380 als den Ausgabekanal 304 aufweisend dargestellt ist, ist es ersichtlich, dass der Treiber 380 einen oder mehrere zusätzliche Ausgaben, wie z. B. eine Taktsignal bzw. Taktsignale vorsehen kann. Der Treiber 380 wird ferner nachstehend mit Bezug auf 6 beschrieben.
  • 4A ist ein funktionales Blockdiagramm einer zweiten beispielhaften Ausführungsform eines programmierbaren seriellen Anschlusses 400 entsprechend von zumindest einigen Aspekten der vorliegenden Erfindungen. Der programmierbare serielle Anschluss 400 enthält einen Treiber 480, zwei Zustandsmaschinen 420 und 421, von welchen jede einen entsprechenden Speicher 430 und 431 aufweist, Schieberegistermodule 412 und 413, und einen Taktgenerator 460 und 461. Die Schieberegistermodule 412 und 413 weisen entsprechende Schieberegister 410 und 411, sowie Bitzähler 470 und 471 auf. Die Schieberegister 410 und 411 empfangen parallele Daten-Bits von Pufferspeichern 422 und 423 und sehen jeweils serielle Ausgaben auf den Kanälen 404 und 405 vor.
  • Wie oben steuert ein Controller 450 einige Funktionen des programmierbaren seriellen Anschlusses 400, z. B. durch Initialisieren jeglicher der obigen Komponenten, welche den programmierbaren seriellen Anschluss 400 aufweisen und durch Auswahl eines Protokolls, unter welchen die Eingaben und Ausgaben verarbeitet werden.
  • Der programmierbare serielle Anschluss 400 ist konfiguriert, um ein gleichzeitiges Senden und Empfangen von Daten über die jeweiligen Schieberegistermodule 412 und 413 zu erlauben; der programmierbare serielle Anschluss 400 ist dementsprechend in der Lage, eine Voll-Duplexkommunikation oder Halb-Duplexkommunikation durchzuführen.
  • Um die Voll-Duplexkommunikation zu erreichen, arbeiten die Schieberegistermodule 412 und 413 gleichzeitig, Daten zu senden und zu empfangen; und um in Halb-Duplexbetrieb zu arbeiten, senden/empfangen die Schieberegistermodule 412 und 413 Daten in abwechselnden Zeitzyklen.
  • In manchen Ausführungsformen enthält der programmierbare serielle Anschluss 400 zwei Ablauf- bzw. Ereigniszähler (eventcounter) 480 und 481, welche jeweils den Zustandsmaschinen 420 und 421 zugehörig sind. Die Ablaufzähler 480 und 481 sind Register, welche in Reaktion auf eine Eingabe wie z. B. ein Taktsignal oder ein Signal von den Zustandsmaschinen 420 und 421 erhöht oder vermindert werden. Jeder der Ablaufzähler 480 und 481 ist in der Lage, einen entsprechenden Zählregisterwert vorzusehen. Die Zähler 480 und 481 sind konfigurierbar, in Reaktion auf eine Eingabe von einer Zustandsmaschine oder einer anderen Quelle (z. B. einem Taktgeber) erhöht oder vermindert zu werden. Auf einen Zählregisterwert kann z. B. über die Vergleichs-Instruktion (nachstehend erörtert) zugegriffen werden, und ein Zählregister kann zusätzlich festverdrahtet werden, um eine Ausgabe an eine zugehörige Zustandsmaschine nach dem Auftreten eines Ablaufs bzw. Ereignisses vorzusehen (z. B. der Zähler 480, 481 wird auf Null vermindert, oder ein Registerüberlauf ist aufgetreten). In einigen Ausführungsformen wird die Ausführung angegebener Instruktionen (eine Verzögerungsinstruktion, ein Wartebefehl oder ein Taktbefehl, welcher den Leistungssparmodus aufruft (jede dieser Instruktionen ist nachstehend beschreiben)) ein Taktsignal 705 und 706 einer Zustandsmaschine (in 7 sichtbar) durch ein Gate 708, 709 gesperrt, bis die Zustandsmaschine einer Ausgabe von den Ablaufzähler 480, 481 empfängt, welche angibt, dass der Zähler 480, 481 auf Null gesenkt worden ist.
  • In einigen Ausführungsformen kann der programmierbare serielle Anschluss 400 ein Statusregister 495 und einen Komparator 490 enthalten. Das Statusregister 495 ist in der Lage Daten zu empfangen, welche den Status jeglicher anderer Komponenten des programmierbaren seriellen Anschlusses 400 angeben, z. B. ein Bit kann angeben, dass ein bestimmtes Register voll ist, leer ist, oder dass ein Überfluss vorliegt, oder kann einen Paritäts-Bitfehler angeben). Die Zustandsmaschinen 420 und 421 können bedingte bzw. an Bedingungen geknüpfte Vorgänge basierend z. B. auf jeglichen der Bits des Statusregisters oder eines Zählwerts der Ablaufzähler 480, 481 durchführen. Ein Komparator 490 kann enthalten sein, um die Durchführung der bedingten Vorgänge durch die Zustandsmaschinen 420 und 421 zu erleichtern. Der Komparator 490 kann z. B. einen Datenwert in einem ausgewählten Register vergleichen.
  • Optional kann eine Interrupt-Verarbeitung durch Interrupt-Verarbeitungsmodule 455 und 456 vorgesehen werden. Bezugnehmend auf 4B ist ein schematisches Diagramm eines beispielhaften Interrupt-Verarbeitungsmoduls 455 dargestellt. Ein Interrupt-Verarbeitungsmodul ist definiert, konfiguriert und angeordnet, um eine Zustandsmaschine entsprechend von zumindest einem ersten Operand selektiv zu unterbrechen. Das Interrupt-Verarbeitungsmodul enthält ein erstes Interrupt- Auswahlregister 457 zum Steuern von Multiplexern 462 und 463, welche jeweils einen ersten Operand und einen zweiten Operand an ein Bediener- bzw. Anwendermodul 464 vorsehen. Der erste Operand und der zweite Operand können z. B. ausgewählte Bits des Statusregisters 495 sein, oder entweder der erste Operand, oder der zweite Operand kann ein ausgewählter Datenwert sein. Das Anwendermodul 464 führt mit den ausgewählten Operanden einen ausgewählten Vorgang durch und erzeugt eine Ausgabe (z. B. logisch und/oder logisch oder von ihren Werten). Ein Interrupt-Konfigurationsregister 466 kann zum Steuern des Aktivierens eines Interrupts, der Umkehrung bzw. Inversion einer Eingabe oder einer Ausgabe, und ob der Vergleich nach Empfang eines erfassten Niveaus oder einer Flanke durchgeführt wird, verwendet werden. Ein Interrupt-Konfigurationsregister kann ein Interrupt-Freigabe-Bit zum Steuern eines UND Gates 469 enthalten, um zu bestimmen, ob ein Interrupt an einer Zustandsmaschine vorgesehen werden sollte und dadurch einen Interrupt der Zustandsmaschine verursacht.
  • Nach Empfang eines Interrupts, beginnt die Zustandsmaschine ein Programm bzw. eine Routine beginnend an einer Adresse (d. h. ein Interupt-Vektor), welche in dem Interrupt-Adressregister 467 angegeben ist. Eine Zustandsmaschine kann optional, nach Empfang eines Interrupts, eine Return-Adresse in einem Return-Register 468 speichern, um der Zustangsmaschine zu erlauben, zu der Programmzeile zurückzukehren, welche die Zustandsmaschine ausgeführt hat, als der Interrupt aufgetreten ist.
  • 5 ist ein schematisches Diagramm einer beispielhaften Ausführungsform eines Transferregisterschiebemoduls 500 entsprechend von zumindest einigen Aspekten der vorliegenden Erfindung. Das Schieberegistermodul 500 ist hierin definiert, zumindest ein Schieberegister 510 zu enthalten, um auf Kanal 502 empfangene Daten in serieller Reihenfolge zu erstellen. Das Schieberegister 500 enthält optional ein Bitzählermodul 570, Transferlogik 520 und ein Transferkonfigurationsregister 506. Ein Bitzähler 572 ist konfiguriert, einen numerischen Zählwert der Bits der seriellen Daten, welche durch das Schieberegistermodul 500 ausgegeben werden, beizubehalten.
  • Das Schieberegistermodul 500 empfängt eine Eingabe von einem Pufferspeicher (z. B. Pufferspeicher 420 in 4) auf Kanal 502 oder von einer alternativen Quelle wie z. B. einer durch die Zustandsmaschine 420 (in 4 gezeigt) bezeichnete Speicherstelle auf Kanal 505, welche einen Satz paralleler Daten-Bits aufweist. Die Quelle der parallelen Eingabe wird durch einen Multiplexer 504 bestimmt. Das Schieberegistermodul 500 sieht eine serielle Ausgabe entsprechend dem parallelen Satz von Bits auf Kanal 503 vor. Die Ausgabe wird z. B. an den Treiber 380 (in 3A sichtbar) vorgesehen.
  • Das Schieberegister 510 erstellt die ausgewählte parallele Eingabe in serieller Reihenfolge. Es ist ersichtlich, dass das hierin definierte Schieberegister 510 ein herkömmliches Schieberegister oder jegliche andere geeignete Struktur zum Erstellen von Daten in serieller Reihenfolge enthält (z. B. ein mit einem Multiplexer gekoppelter Pufferspeicher, um serielle Bits entsprechend einem Satz paralleler EingabeDaten-Bits selektiv auszugeben).
  • Die Transferlogik 520 enthält einen Multiplexer 522, um ein Stop-Bit zu erzeugen und enthält einen Multiplexer 523, um das Stop-Bit als Ausgabe vorzusehen. Die Transferlogik 520 enthält zusätzlich einen Paritätsgenerator 524 und einen Multiplexer 525 um das auszugebende Paritäts-Bit vorzusehen. Der Multiplexer 522 wählt ein logisches hoch-Pegel oder ein logisches Niedrig-Pegel aus, wie durch ein durch das Transferkonfigurationsregister 506 angegebenes Steuersignal bestimmt wird. Ein Daten-Bit Multiplexer 526 erlaubt dem Schieberegistermodul 500 die Quelle der Daten, welche über den Kanal 503 ausgegeben werden, zu steuern; z. B. in einem gegebenen Protokoll kann ein gegebenes Bit z. B. angegeben werden, von dem Schieberegister 510 sowie der Zustandsmaschine 420 zu kommen oder kann ausgewählt werden, ein logisches hoch-Pegel oder ein logisches Niedrig-Pegel aufzuweisen. Der Paritäts-Bit-Generator 524 empfängt Daten-Bit Werte, welche von dem Daten-Bit Multiplexer 526 ausgegeben werden und berechnet ein Paritäts-Bit.
  • Wie oben beschrieben wird das Schieberegistermodul 500 entsprechend von Aspekten der vorliegenden Erfindung in Reaktion auf den Empfang eines Taktimpulses 572 automatisch vermindert. Ein Paritäts-Bit wird automatisch nach Abschluss der Übertragung der Daten-Bits (falls dies ein Protokoll erfordert) ausgegeben und ein Stop-Zustand wird nach Empfang einer vorbestimmten Anzahl von Taktzyklen eingeleitet, nachdem der Bit-Zähler Null erreicht, ohne die Notwendigkeit, dass die Zustandsmaschine weitere Instruktionen ausführt. Die Anzahl der durch die Zustandsmaschine ausgeführten Instruktionen, um eine Ausgabe entsprechend einem ausgewählten Protokoll zu erreichen ist deshalb relativ gesehen geringer und die Gesamtausführungszeitdauer zum Erreichen einer Ausgabe ist relativ kurz; ein programmierbarer serieller Anschluss ist somit in der Lage entsprechend einer breiten Vielfalt von Protokollen Ausgaben vorzusehen und Eingaben zu akzeptieren.
  • Um die obigen automatischen Ausgaben zu erreichen weist das Bit-Zähler-Modul 570 einen Bit-Zähler 574, einen Komparator 572, einen Zähl-Analysator 576, einen Weg-Controller 578 und andere Logik wie nachstehend beschrieben auf. Der Weg-Controller 578 empfängt einen Zählwert und steuert das Schieberegister 510, sowie die Transferlogik 520, um auf dem Kanal 503 entsprechend einem ausgewählten Protokoll automatisch eine Ausgabe vorzusehen. Das Konfigurationsregister 506 enthält durch den Controller 450 (in 4 oben gezeigt) vorgesehene Daten, um jede der obigen Komponenten entsprechend dem ausgewählten Protokoll anzuordnen und zu steuern.
  • Ein Anfangszählwert wird in Abhängigkeit davon, ob eine Eingabe 506a von dem Konfigurationsregister 506 angibt, daß das ausgewählte Protokoll erfordert, daß das höchstwertige Bit oder das niedrigstwertige Bit zuerst gesendet wird, durch den Multiplexer 580 an den Bitzähler 574 vorgesehen. Falls das höchstwertige Bit zuerst gesendet werden soll, sieht der Multiplexer 580 einen Anfangszählwert vor, welcher der Datengröße gleicht (d.h. der Gesamtanzahl von Daten-Bits in einem gegebenen Satz von Daten-Bits, welche durch den Kanal 502 vorgesehen werden) und der Bitzähler 574 wird auf Null gesenkt und falls das niedrigswertige Bit zuerst gesendet wird, sieht der Multiplexer 580 einen Anfangszählwert vor, welcher gleich Null ist und der Bitzähler 574 wird auf einen Wert erhöht, welcher der Datengröße gleicht. Der Weg-Controller 578 wählt basierend auf dem Zählwert des Bitzählers 574 für jeden Taktimpuls aus, ob ein Datenwert, ein Paritäts-Bit oder ein Stop-Bit gesendet wird.
  • Auf den Empfang eines Taktimpulses 572 hin wird der Zählwert des Bit-Zählers 574 basierend auf dem ausgewählten Protokoll erhöht oder gesenkt. Der Weg-Controller 578 empfängt den Zählwert von dem Bitzähler 574. Der Weg-Controller 578 vergleicht den Zählwert mit der Eingabe 06a von dem Konfigurationsregister 506, um zu bestimmen, ob die Multiplexer 523, 526, 525 konfiguriert werden sollten, ein Datenbit von dem Schieberegister 510, ein Paritäts-Bit oder ein Stop-Bit auf dem Ausgabekanal 503 vorzusehen. Auf den Empfang eines ersten Null-Zählwerts hin, steuert der Weg-Controller 578 die Multiplexer 523, 526, 525 ein niedrigstwertiges Bit, ein Paritäts-Bit oder ein Stop-Bit auszugeben. Auf den Empfang eines zweiten Null-Zählwerts, steuert der Weg-Controller 528 die Multiplexer 523, 526, 525 ein Paritäts-Bit vorzusehen, falls die Eingabe 506a angibt, dass ein Stop-Bit gesendet werden soll. Der Weg-Controller 578 kann den Zählwert an das Schieberegister 510 vorsehen, welches als ein Zeiger auf das auszugebende Daten-Bit verwendet werden kann; dementsprechend wird jedes der Daten-Bits in dem Schieberegister in Reaktion auf einen Taktimpuls ausgegeben.
  • Der Komparator 572 bestimmt, ob die Anzahl der gesendeten Bits der Datengröße entspricht (z. B. falls das niedrigstwertige Bit zuerst gesendet wurde, bestimmt der Komparator 572 ob der Zählwert der Datengröße gleicht. Die Ausgabe des Komparators 572 wird an den Zählanalysator 576 vorgesehen und der Zählanalysator 576 verwendet die Eingabe 506a in Kombination mit der Ausgabe des Komparators, um den nächsten Wert des Bit-Zählers 574 zu bestimmen. Bis der Komparator 572 angibt, dass eine Anzahl von Bits, welche der Datengröße entsprechen, gesendet worden sind, wird die Bit-Zahl geeigneterweise erhöht (oder gesenkt). Auf den Empfang einer Ausgabe von dem Komparator 572 hin, welche angibt, daß eine Anzahl von Bits, welche der Datengröße entspricht, gesendet worden ist, bestimmt der Zählanalysator 576, ob ein Paritäts-Bit notwendig ist (z. B. nachdem der Zähler Null erreicht, wird es dem Zähler erlaubt für einen ersten Impuls bei Null zu verbleiben), oder gibt an, dass ein Stop-Bit notwendig ist (z. B. es wird dem Zähler erlaubt nach dem Erreichen von Null für einen zweiten Impuls bei Null zu verbleiben), und ob ein Umlaufs- bzw. zyklischer Modus (circular mode) eingestellt ist (d.h. der Zähler wird auf den Anfangswert zurückgesetzt, nachdem das Paritäts-Bit und das Stop-Bit gesetzt sind).
  • 6 ist ein schematisches Diagramm eines Beispiels eines Treibers 480, welcher in dem programmierbaren Anschluß verwendet werden kann. In der dargestellten beispielhaften Ausführungsform sind sechs Eingabe/Ausgabe-Treiberschaltungen vorgesehen: eine Datentransfer-Treiberschaltung 601, eine Takttransfer-Treiberschaltung, eine Datenempfangs-Treiberschaltung 603, eine Taktempfangs-Treiberschaltung 604, und zwei konfigurierbare Eingabe/Ausgabe-Schaltungen 605 und 606. Die konfigurierbaren Eingabe/Ausgabe-Schaltungen 605 und 606 können z. B. Freigabesignale vorsehen, jeweils eines für die Empfangs- und Sendeanschlüsse, oder können zum Empfang eines Signals verwendet werden, welches als ein Slave-Taktsignal verwendet wird (unten beschrieben).
  • Die Schaltungen können beliebige herkömmliche Eingabe/Ausgabe-Treiberschaltungen sein. Die Schaltungen können z. B. die Auswahl einer Quelle/Empfänger (z. B. Leistungsversorgung bei logischer Eins oder Null oder eine Eingabe/Ausgabe von einer Zustandsmaschine, oder eine Ausgabe von einem Schieberegister), eine Auswahl der Polarität eines Ausgabesignals, eine Auswahl eines Hoch-Impedanz-Zustands, eine Erfassung einer Daten-Eingabe/Daten-Ausgabe-Fehlzuordnung und eine Paritäts-Bit-Berechnung erlauben. Ein Schalter 610 kann optional enthalten sein, um eine Zuordnung von Eingaben-Ausgaben zu einem der sechs Ausgabe-Pins 621 bis 626 einer integrierten Schaltung zu erlauben, in welcher der programmierbare Datenanschluß angeordnet ist.
  • 7 ist ein schematisches Diagramm eines Beispiels einer Ausführungsform eines Taktgenerators 700 zur Verwendung mit zumindest einigen programmierbaren seriellen Anschlüssen entsprechend von Aspekten der vorliegenden Erfindung. Der Taktgenerator 700 wählt von einer Vielzahl von Taktquellen ein Master-Taktsignal aus; ein Master-Taktsignal kann z. B. von einem System-Taktgeber 702 ausgewählt werden, welches von einem Mikro-Controller (z. B. der Mikro-Controller 450 in 4) angegeben wird, oder einem Hilfstaktgeber 703, welcher von einer Quelle von Impulsen eingegeben wird, welche zur Verwendung als ein Master-Taktsignal 704 geeignet sind, ausgewählt, und sieht Ausgabe-Taktsignale vor. Solche Ausgabe-Taktsignale enthalten Ausgabe-Taktsignale 705 und 706 an eine erste und eine zweite Zustandsmaschine (z. B. die Zustandsmaschinen 420 und 421 in 4 oben), Ausgabe-Taktsignale 726 und 736 an erste und zweite Schieberegistermodule (z. B. die Schieberegistermodule 412 und 413), sowie Ausgabe-Taktsignale 727 und 737 an einem Treiber (z. B. der Treiber 480 in 4).
  • Ein Taktgeneratormodul 710 einer Zustandsmaschine empfängt das Master-Taktsignal 704 und sieht die Taktsignal-Ausgaben 705 und 706 an die Zustandsmaschinen (z. B. die Zustandsmaschinen 420 und 421 in 4 oben) auf den Ausgabekanälen 705 bzw. 706 vor, um die Instruktionsausführungen durch die Zustandsmaschinen zu steuern. Die Ausgabe-Taktsignale 705 und 706 können durch einen Zustandsmaschinenteiler 712, welcher mit den Ausgabekanälen 705 und 706 gekoppelt ist, geteilt werden oder relativ zu dem Master-Taktsignal 704 phasenverzögert werden, oder der Zustandsmaschinenteiler 712 kann (abhängig von dem an den Multiplexer 714 angelegten Steuersignal) kurzgeschlossen bzw. umgangen werden, so daß die Taktsignalausgaben 705 und 706 den Master-Taktsignalen 704 gleichen. Die Gates 708 und 709 können mit den Ausgabekanälen 707 bzw. 708 mit den Gate-Ausgabe-Taktsignalen 705 und 706 gekoppelt sein; die Gates 708 und 709 können z. B. durch Steuersignale von den Zustandsmaschinen 420 bzw. 421 resultierend von der Ausführung einer Warte-Instruktion, einer Verzögerungs-Instruktion oder einer Takt-Instruktion gesteuert werden, was einen Leistungssparmodus, wie nachstehend erläutert, aufruft und werden durch die mit "Steuerung" gekennzeichneten Eingaben 708a und 709a angegeben.
  • Das Zustandsmaschinen-Taktgeneratormodul 710 enthält ein Konfigurationsregister 707, um die Taktquelle des Mastertakts 704, den auf den Teiler 712 anzuwendenden Teilungsfaktor und die Phase des Ausgabe-Taktsignals 705 und 706 relativ zu der Taktquelle zu bestimmen. Die Steuereingaben 708a und 709a können ebenfalls durch die Inhalte des Konfigurationsregisters in manchen Ausführungsformen eingestellt werden.
  • Ein Takttransfergeneratormodul 720 empfängt von dem Zustandsmaschinen-Taktgeneratormodul 710 eine Signalausgabe 705a, sowie alternative Takteingaben (z. B. ein asynchrones Slave-Taktsignal 721, ein logisches Hoch-Signal, und ein logisches Niedrig-Signal) und sieht Taktsignal-Ausgaben 726 und 727 (welche eine Vielzahl von Taktimpulsen aufweisen) an ein Transferschieberegister (412 in 4) bzw. einen Treiber (z. B. der Treiber 480 in 4) vor. Ein Transferteiler 722 und ein Transferteiler 724 teilen die Nicht-Gate-gesteuerte Ausgabe 705a des Zustandsmaschinen-Taktgeneratormoduls 710 und sind mit dem Transferschieberegister gekoppelt, um eine Taktsignalausgabe 726 vorzusehen. Der Multiplexer 725 wählt von dem Slave-Taktsignal 721 ein logisches Hoch-Level und ein logisches Niedrig-Level aus; und ein Multiplexer 745 wählt zwischen der Ausgabe des Multiplexers 725 und der Ausgabe des Transferteilers 722 aus, um eine Taktsignalausgabe 726 vorzusehen. Der Multiplexer 723 wählt zwischen der Ausgabe des Transferteilers 724 und der Ausgabe des Multiplexers 745 aus, um die Taktsignalausgabe 727 vorzusehen. Durch eine geeignete Konfiguration des Multiplexers 723 können das Transferschieberegister und der Transfertreiber entsprechend durch das gleiche Taktsignal angesteuert werden.
  • Ein Takttransfer-Konfigurationsregister 728 steuert die Teilungsfaktoren der Teiler 722 und 724 sowie die Startpolarität und Stop-Polarität der Ausgaben, ob der Taktgenerator im Leistungssparmodus betrieben wird (d.h. ob der Taktgenerator der Zustandsmaschine während dem Takttransferbetrieb abgeschaltet ist), und ob der Betrieb des Taktgenerators der Zustandsmaschine an dem Ende des Betriebs oder einen Taktzyklus früher gestartet wird (aus Gründen, die nachstehend mit Bezug auf die 8A und 8B näher erläutert sind). Ein Takttransfer-Teilerregister 729 steuert den Taktzyklus des Takttransfersignals. Das Takttransfer-Teilerregister kann z. B. ein Hoch-Pegel-Teilungsverhältnis und ein Niedrig-Pegel-Teilungsverhältnis enthalten, um die Anzahl von Zyklen zu bestimmen, in welchen die Taktsignale 726 und 727 einen Hoch-Pegel, sowie einen Niedrig-Pegel aufweisen, und somit der Taktzyklus bestimmt wird. Dem Durchschnitts-Fachmann ist die Implementierung solcher Hoch-Pegel-, sowie Gering-Pegel-Teilungsverhältnissen ersichtlich; deshalb sind weitere Details hierin nicht enthalten.
  • Ein Taktempfangs-Generatormodul 730 empfängt eine Signalausgabe 705a von dem Zustansmaschinen-Taktgeneratormodul 710, sowie alternative Takteingaben (z. B. ein asynchrones Slave-Taktsiganl 731, ein logisches Hoch-Pegel-Signal und ein logisches Niedrig-Pegel-Signal) und sieht die Taktsignalausgaben 736 und 737 an ein Empfangsschieberegister (413 in 4) bzw. einen Treiber (z. B. Treiber 480 in 4) vor. Ein Empfangsteiler 723 und ein Empfangsteiler 734 teilen die nicht-Gate-gesteuerte Ausgabe 705a des Zustandsmaschinen-Taktgeneratormoduls 710. Ein Multiplexer 735 wählt zwischen dem Slave-Taktsignal 731 und einem logischen Hoch-Pegel sowie einem logischen Niedrig-Pegel aus, und ein Multiplexer 746 wird zwischen der Ausgabe des Multiplexers 735 und der Ausgabe des Transferteileer 732 aus, um eine Taktsignalausgabe 736 vorzusehen. Ein Multiplexer 733 wählt zwischen einer Ausgabe des Transferteilers 734 und der Ausgabe des Multiplexers 746 aus, um eine Taktsignal-Ausgabe 737 vorzusehen. Durch eine geeignete Konfiguration bzw. einen geeigneten Aufbau des Multiplexers 433 können das Transferschieberegister und der Transfertreiber entsprechend durch das gleiche Taktsignal angesteuert werden.
  • Ein Taktempfangs-Konfigurationsregister 738 steuert den Teilungsfaktor der Teiler 732 und 734, sowie die Startpolarität als auch die Stop-Polarität der Ausgaben. Das Taktempfangs-Teilerregister 737 steuert den Taktzyklus des Takttransfersignals. Das Taktempfangs-Teilerregister 737 kann ein Hoch-Pegel-Teilungsverhältnis und ein Niedrig-Pegel-Teilungsverhältnis enthalten, um die Anzahl der Zyklen zu bestimmen, in welchen die Taktsignale 736 und 737 einen Hoch-Pegel, sowie einen Niedrig-Pegel aufweisen und somit der Taktzyklus bestimmt wird. Dem Durchschnittsfachmann ist die Implementierung solcher Hoch-Pegel- und Niedrig-Pegel-Teilungsverhältnisse ersichtlich; weitere Details sind deshalb hierin nicht enthalten.
  • Es ist ersichtlich, daß durch die Verwendung des Taktgenerators 700 ein programmierbarer serieller Anschluß, welcher eine erste Zustandsmaschine und eine zweite Zustandsmaschine aufweist (z. B. der programmierbare serielle Anschluß 400 in 4), in einem Vollduplex-Betrieb betrieben werden kann. Der Taktgenerator 700, welcher eine erste Zustandsmaschine und eine zweite Zustandsmaschine aufweist, kann alternativ in einem Halb-Duplex-Betrieb betrieben werden, wobei das Takttransfersignal und das Empfangssignal ausgebildet sind, so dass Transfers und ein Empfang in abwechselnden Taktintervallen auftreten.
  • 8A und 8B sind Zeitablaufdiagramme zweier beispielhafter Taktoptionen. Jedes Zeitablaufdiagramm stellt einen Master-Takt 892, einen Schieberegister-Steuertakt 804 oder 814 (d.h. ein Takttransfersignal oder ein Taktempfangssignal) und ein entsprechendes Zustandsmaschinen-Taktsignal 806, 816 dar. Zusätzlich wird eine Anzeige 810 oder 820 des Taktzyklus, während welchem die Taktinstruktionen ausgeführt werden, zusammen mit einer Anzeige 805 oder 815 des Taktzyklus, während welchem die Ausführung der Instruktionen auf die Taktinstruktion folgend (ebenfalls auf die "nächste Instruktion" bezeichnet) gezeigt.
  • 8A stellt eine beispielhafte Taktgeneratorausgabe eines Taktgenerators dar, welcher einen Taktimpuls in einem Standardmodus erzeugt. In einem Standardmodus wird ein Zustandsmaschinen-Taktsignal 806 während dem Zeitraum, wenn das Schieberegister-Taktsteuersignal 804 erzeugt wird, erzeugt. Die der Taktinstruktion folgende Instruktion wird dementsprechend während dem Master-Taktzyklus 805 unmittelbar auf den Taktzyklus 810 folgend ausgeführt, während welchem die Taktinstruktion ausgeführt wird.
  • Die beispielhaften Zeitablaufdiagramme entsprechen einem Taktgenerator, welcher ein Konfigurationsregister aufweist, das konfiguriert ist, einen AUS-Zustand 821 von eins und einen Startzustand 823 von Null zu erreichen. Zusätzlich wird durch Auswahl der niedrig-Pegel-und-hoch-Pegel-Teilungsfaktoren ein Tastzyklus von einem Viertel erreicht, so dass zwei von acht Zyklen einen hoch-Pegel aufweisen.
  • 8B stellt eine Taktgeneratorausgabe eines Taktgenerators dar, welcher in einem Leistungssparmodus betrieben wird. In dem Leistungssparmodus wird das Zustandsmaschinen-Taktsignal 816 ausgesetzt, während das Schieberegister-Taktsteuersignal 814 erzeugt wird. Der Leistungssparmodus ermöglicht eine Senkung des Leistungsverbrauchs. Der Leistungssparmodus kann z. B. verwendet werden, falls ein ausgewähltes Protokoll nicht erfordert, dass Instruktionen ausgeführt werden, währende ein Schieberegister-Steuertakt erzeugt wird (d. h. während Bits von einem entsprechenden Schieberegister ausgegeben werden).
  • Der Leistungssparmodus wird durch Verwenden der Gates 708, 709 (in 7 gezeigt) erreicht, um eine Ausgabe eines Zustandsmaschinen-Taktsignals zu blockieren, während ein entsprechendes Schieberegistermodul eine Ausgabe vorsieht. Während der Ausführung einer Taktinstruktion blockieren die Gates 708 und/oder 709 die Signale 705 bzw. 706, falls die Steuerregister 728 und 738 in einem Leistungssparmodus konfiguriert sind, und nach Vollendung der geeigneten Anzahl von Zyklen wird das Blockieren des Zustandsmaschinen-Taktsignals durch die Gates 708, 709 aufgehoben.
  • In 8B sieht das Schieberegistersteuersignal 816 einen Schieberegistersteuertakt 814 vor, welcher zwei Zeiteinheiten bzw. Intervalle (wie durch den Bereich 825 angezeigt) dauert. Das Taktsignal weist einen Tastzyklus von 33 Prozent, einen AUS-Zustand 822 von Null und einen Start-Zustand 824 von eins auf.
  • Da das Dekodieren und die Ausführung einer Instruktion zwei Taktzyklen erfordert, tritt die Ausführung der nächsten Instruktion in dem zweiten Taktzyklus 815 nach dem Ende 830 des Schieberegistersteuertaktsignals 814 auf (das Dekodieren der nächsten Instruktion tritt während dem ersten Taktzyklus 831 auf das Ende 830 hin folgend auf). In manchen Ausführungsformen kann ein Gate 708 und/oder 709 dementsprechend gesteuert sein, so dass dieses bzw. dieser das Blockieren des Zustandsmaschinen-Taktsignals 816 einen Zyklus vor dem Ende 830 der Schieberegistertaktausgabe beendet bzw. beenden. Dies ermöglicht das Ausführen der nächsten Instruktion in dem Taktzyklus, welcher unmittelbar auf die Beendigung der Schieberegistertakterzeugung folgt.
  • 9 ist ein Ablaufdiagramm 900 einer beispielhaften Sequenz von Instruktionen für einen programmierbaren seriellen Anschluss entsprechend von einigen Aspekten der vorliegenden Erfindung, um eine Standardausgabe (z. B. eine UART kompatible Ausgabe) zu erreichen. Bei Schritt 905 wartet die Zustandsmaschine auf eine Eingabe von dem Schieberegister, dass das Schieberegister mit Daten gefüllt ist. Bei Schritt 910 lädt die Zustandsmaschine den Treiber mit einem Start-Zustand. Bei Schritt 920 wird der Bit-Zähler initialisiert. Bei Schritt 930 lädt die Zustandsmaschine den Bit-Zähler in das Schieberegister. Das erste Daten-Bit wird gesendet und der logische Wert wird für so viele Taktzyklen wie für das Protokoll nötig sind, bei Schritt 950 gehalten. Bei Schritt 960 wird ein Taktbefehl an den Taktgenerator gesendet, welcher die Anzahl von Impulsen und den Teilungsfaktor für den Teiler definiert. Der Treiber wird schließlich bei Schritt 990 in einen Stop-Zustand versetzt.
  • Im Gegensatz zu dem Ablaufdiagramm des Programms für einen herkömmlichen programmierbaren seriellen Anschluss (oben mit Bezug auf 2 beschrieben), ist es ersichtlich, dass die Ausführungszeit, welche notwendig ist; um eine gegebene Datenausgabe zu erreichen, entsprechend dem hierin gezeigten Verfahren und der Vorrichtung bedeutend verringert wird, da eine verringerte Anzahl von Instruktionen durch die Zustandsmaschine ausgeführt werden muss, um eine ausgewählte Ausgabe vorzusehen. In 2 war z. B. erforderlich, dass die Zustandsmaschine für jedes auszugebende Daten-Bit einen Befehl an das Schieberegister sendet (Schritt 270 in 2). In 9 dagegen wird ein einzelner Befehl an den Taktgenerator gesendet (z. B. Taktgenerator 360 in 3), um eine vorbestimmte Anzahl von Impulsen mit einer durch eine Teilungsrate bestimmten Geschwindigkeit zu erzeugen. Da der Taktgenerator mit dem Schieberegister gekoppelt ist, gibt das Schieberegister in Reaktion auf die Taktimpulse. des Taktgenerators Daten-Bits aus, wodurch die Zustandsmaschine von der Erfordernis befreit wird, dem Schieberegister zu befehlen, jede Daten-Bit-Ausgabe vorzusehen. In 2 senkt die Zustandsmaschine ebenfalls den Bit-Zähler (Schritt 260), um eine numerische Anzahl von ausgegebenen Daten-Bits beizubehalten. In 9 ist es dagegen nicht erforderlich, dass die Zustandsmaschine eine Instruktion ausführt, einen Zähler zu senken, da das Schieberegister einen Bit-Zähler aufweist, welcher in Reaktion auf den Empfang eines Taktimpulses von dem Taktgenerator automatisch gesenkt wird. Das Schieberegister ist des weiteren angeordnet, ein Paritäts-Bit auszugeben (falls das Protokoll dies erfordert) und auf den Empfang von Taktzyklen hin, nachdem die Bits gesendet worden sind, in einen Stop-Zustand zu gehen, ohne dass es notwendig ist, dass die Zustandsmaschine weitere Instruktionen ausführt.
  • Die folgende Liste von Instruktionen ist ein beispielhafter Instruktionssatz, welcher durch die Zustandsmaschinen 410 und 411 (in 4 gezeigt) ausgeführt werden soll. Die 10A und 10B sind Tabellen, welche einen beispielhaften Satz binärer Implementierungen jeder der Instruktionen auf der Liste darstellen. Die Liste enthält eine funktionelle Beschreibung, als auch eine Erklärung der in einer entsprechenden Binärimplementierung enthaltenen Bits für die entsprechenden in den 10A und 10B dargestellten Binärimplementierungen 1000.
  • Da die Binärimplementierungen in den 10A und 10B zur Implementierung mit der Dekodier- und Ausführungsarchitektur, in welcher ausgewählte Instruktionen parallel ausgeführt werden können (nachstehend mit Bezug auf 10A beschrieben) geeignet ist, entsprechen einige Instruktionen der nachfolgenden Liste zwei Binärimplementierungen, jeweils eine in 10A (zur Verwendung an den Bitstellen 0 bis 7) und 10B (zur Verwendung an den Bitstellen 15 bis 8).
  • Bezugnehmend auf die 10A und 10B weist jede Instruktion einen Betriebscode 1004 (durch logische Werte von eins und Null in den Binärimplementierungen 1000 angegeben), sowie ein oder mehrere Datenfelder und/oder Adressfelder auf.
  • Die nachfolgende Liste von Instruktionen enthält fünf Typen von Instruktionen: Konfigurationsinstruktionen, Betriebssteuerinstruktionen, Ablaufsteuerinstruktionen, Zeitablaufsteuerinstruktionen, Taktsteuerinstruktionen, sowie Bedingungsinstruktionen. Programmierbare serielle Bit-Anschlüsse können unter Verwendung von Zustandsmaschinen implementiert werden, welche ein bekanntes Abruf-, Dekodier-, sowie Ausführungsschema aufweisen. Die aufgezählten Instruktionen können z. B. sequentiell ausgeführt werden. In manchen Ausführungsformen werden die Instruktionen wie nachstehend beschrieben parallel ausgeführt.
    Konfigurationsinstruktionen kurze Beschreibung
    Load lädt Daten in ein angegebenes Register
  • Bezugnehmend auf 10A (1002) stellen die d Werte die zu ladenden Werte dar und die i Werte geben eine zu ladende Registeradresse an.
    Dual Bit Load lädt zwei ausgewählte Daten-Bits an den
    Treiber oder das Treiberkonfigurationsregister.
  • Bezugnehmend auf die 10A und 10B (1004a, 1004b), geben die i Werte die Bits an, in welche die Werte geladen werden sollen, und die v Werte stellen die zu ladenden Werte dar.
    Mask ermöglicht das Setzen/Zurücksetzen
    ausgewählter Bits eines ausgewählten
    Registers.
  • Bezugnehmend auf 10A (1006) bilden die m Werte die Maske und die i Werte schildern die Adresse eines auszublendenden Registers dar.
    Map wird in Kombination mit Instruktionen
    verwendet, welche eine endliche Anzahl von
    Adress-Bits aufweisen, um die Anzahl von Bits zu
    erhöhen, die unter Verwendung der Instruktion in
    einem gegebenen Register zugreifbar sind. Eine
    ausgewählte Instruktion, welche ein drei-Bit
    Adressfeld aufweist kann z. B. unter Verwendung
    der Map Instruktion unter mehr als acht Bits
    auswählen; die Map Instruktion wählt einen acht-
    Bit Vektor von innerhalb eines Registers aus,
    welches mehr als insgesamt acht Bits aufweist und
    das drei-Bit Adressfeld wählt ein Bit innerhalb des
    acht-Bit Vektors aus. Map kann z. B. bei der
    Bedingungs-Ausführungsinstruktion (nachstehend
    erläutert) verwendet werden, um unter 55 Bits des
    Statusregisters 495 (in Fig. 4A gezeigt)
    auszuwählen, trotz der Tatsache, dass in manchen
    Ausführungsformen das Bedingungs-
    Ausführungsregister lediglich ein drei-Bit
    Adressfeld aufweist.
  • Bezugnehmend auf 10B (1008) geben die i Werte einen acht-Bit Vektor an.
    Extend ein Extend Befehl wird in
    Kombination mit einer anderen Instruktion (z. B.
    einem Dual Bit Load oder einem Trigger) zum
    Vorsehen eines vergrößerten Adressfelds
    verwendet.
  • Bezugnehmend auf 10A (1010) stellen die i Werte zusätzliche Adressbits dar.
    Betriebssteuerinstruktion
    Trigger ein Trigger Befehl ermöglicht es einer
    Zustandsmaschine einen angegebenen fest
    programmierten Ablauf durch Setzen bzw.
    Einstellen ausgewählter Bits einer Ausgabe einer
    Zustandsmaschine zu erreichen. Der Ablauf kann
    direkt oder indirekt (z. B. über ein Register,
    welches fest programmiert ist, einen angegebenen
    Ablauf zu erreichen) erreicht werden.
  • Bezugnehmend auf die 10A und 10B (1012a, 1012b), bezeichnet i die Adresse eines fest programmierten Registers, und die bi Werte geben ein spezifisches Bit innerhalb des Registers an, welches einem bestimmten Ablauf entspricht.
    Ablaufsteuerinstruktionen
    Jump Absolute Springen zu einer absoluten Zeile eines
    Instruktionssatzes.
  • Bezugnehmend auf 10A (1014), stellt der a Wert die Bestimmungsadresse des Sprungs dar.
    Jump Short Relative ein relativer Sprung, welcher auf einen
    Sprung einer ausgewählten Anzahl von Zeilen
    begrenzt ist (z. B. 32 Zeilen vor und 16 Zeilen
    zurück).
  • Bezugnehmend auf die 10A und 10B (1016a, 1016b), stellen die a Werte die Anzahl der zu überpringenden Programmlinien dar.
    Call Absolute Springen an eine absolute Adresse und Speichern
    einer Rücksprungadresse in einem designierten
    Register.
  • Bezugnehmend auf 10A (1018), stellen die a Werte die Bestimmungsadresse des Sprungs dar.
    Ret Rücksprung an Adresse, welche in einem
    designierten Register während eines Call absolut
    gespeichert wurde, wie als 1020a und 1020b in den
    Figuren 10A bzw. 10B dargestellt ist.
    Software Reset setzt eine Zustandsmaschine zurück. In manchen
    Ausführungsformen kann der Speicherinhalt
    bewahrt werden.
  • Als 1022a und 1022b in den 10A bzw. 10B dargestellt.
    Loop führt eine Schleife unter Verwendung einer
    angegebenen Startadresse und einer angegebenen
    Endadresse aus. Die Instruktionen zwischen der
    Startadresse und der Endadresse werden mehrmals,
    wie durch ein ausgewähltes Register angegeben,
    ausgeführt.
  • Bezugnehmend auf 10A (1024), gibt der o1 Wert eine Startadresse und der o2 Wert eine Endadresse für eine Schleife an. Die Anzahl der Wiederholungen ist durch ein getrenntes Schleifenzählerregister festgelegt.
    Null ein „Auffüller", welcher verwendet wird, um
    sechzehn-Bit Instruktionen in Ausführungsformen,
    welche sechzehn-Bit Abrufe aufweisen, ausrichtet.
    Resultiert in keiner Ausführung. (Aspekte der Null-
    Instruktion sind nachstehend mit Bezug auf
    Fig. 10A ausführlicher beschrieben).
  • Als 1026 in 10B dargestellt.
    Zeitablaufsteuerinstruktionen
    Delay verzögert die Ausführung einer nächsten
    Instruktion für eine ausgewählte Anzahl von
    Taktzyklen. Wie oben mit Bezug auf Fig. 4A
    beschrieben ist, kann eine Verzögerung unter
    Verwendung von den Event-Zählern 480, 481
    ausgeführt werden.
  • Bezugnehmend auf die 10A und 10B (1028a, 1028b), stellen die d Werte eine Gesamtverzögerungslänge bzw. Dauer dar.
    Long Delay Long Delay ist ein Vorgang, der Delay gleicht,
    außer dass eine Dauer der Verzögerung unter
    Verwendung eines Zeigers zu einem Register
    anstatt innerhalb der Instruktion selbst ausgewählt
    wird. Es kann dementsprechend eine längere
    Verzögerungsdauer angegeben werden.
  • Bezugnehmend auf 10A und 10B (1030a, 1030b), stellen die i Werte einen Zeiger zu einem Register dar, welches eine Gesamtverzögerungslänge aufweist.
    Wait wartet bis eine angegebene Bedingung war ist
    (z. B. eine unter Verwendung des Statusregisters
    495 und des Komparators 490 (siehe Fig. 4A)
    angegebene Bedingung). Der Takt der
    Zustandsmaschine kann während der Ausführung
    einer Wait Instruktion unter Verwendung der Gates
    708, 709 gate gesteuert werden.
  • Bezugnehmend auf 10A (1032), geben die c1 Werte eine erste zu testende Bedingung an (z. B. eine Flankenerfassung, Pufferspeicher voll oder Pufferspeicher leer), und die c2 Werte stellen eine zweite Bedingung dar. Die v1 und v2 Werte sind Werte, welche auf die erste Bedingung bzw. die zweite Bedingung getestet werden. Die mm Werte wählen die für einen oder beide der ersten Bedingung und der zweiten Bedingung zu machende Wertung aus (z. B. eine Bewertung kann sowohl Bedingung c1 gleich v1 und c2 gleich v2 enthalten).
    Taktsteuerinstruktionen
    Clock weist einen ausgewählten Taktteiler an, eine
    ausgewählte Anzahl von Taktzyklen in einem
    Standard- oder Leistungssparmodus in
    Abhängigkeit von dem Taktkonfigurationsregister
    auszugeben.
  • Bezugnehmend auf 10A (1034), wählen die cd Werte eine Taktauswahl aus, und die d Werte stellen eine Anzahl von auszugebenden Impulsen dar.
    Logische Instruktionen
    Conditional Execution die Ausführung einer angegebenen Instruktion wird
    an eine ausgewählte Bedingung geknüpft.
  • Bezugnehmend auf 10A (1040), stellen die i Werte das Bit innerhalb eines acht-Bit Vektors des Statusregister dar, welches den Operand bildet, und der v Wert stellt die Bedingung (1 = wahr und 0 = falsch) dar. Das zweite Byte, welches typischerweise als das erste Byte einer sechzehn-Byte Instruktion verwendet wird, ist die auszuführende Instruktion, falls die Bedingung wahr ist.
    Compare Data Vergleich von Daten in einem angegebenen
    Register mit einem angegebenen Datenwert. Der
    Vergleich kann einen Vergleich basierend auf
    zumindest den folgenden Operatoren enthalten:
    kleiner als, größer als, gleich, etc.
  • Bezugnehmend auf 10A (1036), geben die d Werte das Register an, welches als der erste Operand agiert. Die d Werte geben die Daten an, welche den zweiten Operand bilden, und die tc Werte stellen den Vergleichstyp dar (Daten = Register, Daten zwei Register, Daten neun Register).
    Compare Registers Vergleich von Daten in einem angegebenen
    Register mit Daten in einem anderen angegebenen
    Register.
  • Bezugnehmend auf 10A (1038), geben die i Werte das Registerpaar an, welches den ersten Operand und den zweiten Operand bildet, und die tc Werte stellen den Vergleichstyp dar (Daten = Register, Daten zwei Register, Daten neuen Register).
  • Konfigurationsregisterinhalte und Instruktionen zum Implementieren eines Protokolls können direkt manuell erzeugt werden oder von einer Eingabe höherer Ebene unter Verwendung von geeigneten Werkzeugen übersetzt werden. Eine Instruktionssequenz zur Verwendung für programmierbare serielle Anschlüsse entsprechend von Aspekten der vorliegenden Erfindung kann in einer geeigneten Speicherorganisation bzw. Ordnung angeordnet werden. 11A ist eine schematische Darstellung einer geeigneten Speicherordnung 1100, welche zur Verwendung mit der vorliegenden Erfindung geeignet ist; die Speicherordnung 1100 ermöglicht die Verwendung eines Instruktionssatzes einschließlich einer Kombination von acht-Bit und sechzehn-Bit Instruktionen (wie oben mit Bezug auf die 10A und 10B erläutert), und ermöglicht, dass ein sechzehn-Bit Abruf bei jedem Taktzyklus auftritt, ohne dass partielle Instruktionen während einem gegebenen Abruf abgerufen werden. Die beispielhafte Speicherordnung 1100 weist die Speicherzeilen 1102, 1104, 1106, sowie 1108 auf; jede Speicherzeile ist in sechzehn-Bit Segmente unterteilt.
  • In manchen Ausführungsformen ist eine erste acht-Bit Instruktion 1102a in den acht-Bit Speichersegmenten 1120 angeordnet, welche bei der Stelle 15 beginnen, wobei das höchstwertige Bit an Stelle 15 angeordnet ist, und eine zweite acht-Bit Instruktion 1102b ist in einem nächsten acht-Bit Speichersegment 1135 (d. h. beginnend bei Stelle 7 der Zeile 1102) angeordnet. Die zweite Speicherzeile 1104 wird von einer sechzehn-Bit Instruktion 1104a besetzt.
  • Ähnlich der ersten Zeile 1102, weist die Zeile 1104 eine erste acht-Bit Instruktion 1106a auf, welche in den acht-Bit Speichersegmenten 1130 beginnend an Stelle 15 angeordnet ist, wobei das höchstwertige Bit an Stelle 15 angeordnet ist. Da die nächste Instruktion jedoch eine sechzehn-Bit Instruktion 1108a ist, wird die zweite Instruktion 1106b in Zeile 1106 ausgewählt, eine Null-Instruktion (oben beschrieben) zu sein, um sechzehn-Bit Abrufe zu vermeiden, welche partielle Instruktionen enthalten (d. h. die Hälte einer sechzehn-Bit Instruktion). Ein Übersetzer zur Verwendung in einer solchen Architektur fügt entsprechend vorzugsweise eine acht-Bit Null-Instruktion 1106b in die acht-Bit Speichersegmente 1135 der Zeile 1106 ein. Die Null-Instruktion ist vorzugsweise eine nicht-ausgeführte Instruktion (d. h. diese ist einfach eine Platzhalterinstruktion).
  • 11B ist eine schematische Darstellung einer beispielhaften Zustandsmaschinen Dekodier- und Ausführungsarchitektur 1150, welche zur Verwendung in der Speicherordnung 1100 der 11A geeignet ist. Die Dekodier- und Ausführungsarchitektur 1150 enthält einen Vor-Dekoder 1160 und zwei Dekoder 1170, sowie 1175.
  • Wie oben erwähnt ruft die zwei-Stufen Dekodier- und Ausführungsarchitektur 1150 sechzehn Instruktionsbits wie oben beschrieben bei jedem Taktzyklus ab. Der Vor-Dekoder 1160 prüft unter Verwendung verwandter Techniken die Vorgangs- bzw. Ablaufcodes von Instruktionen, welche einer Speicherzeile 1102, 1104 sowie 1106 (in 11A oben sichtbar) entsprechen. Der Vor-Dekoder 1160 bestimmt, ob die sechzehn Bits eine sechzehn-Bit Instruktion, zwei acht-Bit Instruktionen, welche parallel ausgeführt werden sollen, oder zwei acht-Bit Instruktionen, welche serielle bzw. in Reihe ausgeführt werden sollen, aufweist.
  • Die Präsenz einer in 10B dargestellten Instruktion, welche an einer Speicherstelle 1130 angeordnet ist (z. B. wie durch Identifizieren ihres Vorgangscodes bestimmt), gibt an, dass die acht-Bit Instruktionen an den Stellen 1130 und 1135 parallel ausgeführt werden sollen. Die Präsenz von anderen Instruktionen gibt die Präsenz einer sechzehn-Bit Instruktion oder zwei acht-Bit Instruktionen an, welche parallel ausgeführt werden sollen.
  • Im Falle, dass eine bestimmte Speicherzeile 1102, 1104, 1106 (in 11A sichtbar) eine sechzehn-Bit Instruktion enthält, werden sechzehn Bits an den Dekoder 1170 vorgesehen; im Falle dass eine bestimmte Speicherzeile 1102, 1104, 1106 zwei acht-Bit Instruktionen enthält, welche seriell ausgeführt werden sollen, werden acht Bits, die der ersten Instruktion entsprechen, in einem ersten Zyklus und acht Bits in dem nächsten Zyklus vorgesehen, so dass die erste Instruktion in einem ersten Taktzyklus und die zweite Instruktion in dem folgenden Taktzyklus ausgeführt wird; und im Falle, dass einen bestimmte Speicherzeile 1102, 1104, 1106 zwei acht-Bit Instruktionen enthält, welche parallel ausgeführt werden sollen, empfängt der Dekoder 1170 die erste Instruktion und der Dekoder 1175 die zweite Instruktion in einem ersten Taktzyklus.
  • Da somit die erfinderischen Konzepte einer Anzahl beispielhafter Auführungsformen beschrieben worden sind, ist es dem Fachmann ersichtlich, dass die Erfindung auf verschiedene Arten implementiert werden kann, und dass Modifikationen und Verbesserungen sich solchen Personen leicht erschließen. Die gegebenen Beispiele sind somit nicht als begrenzend beabsichtigt. Die Erfindung ist lediglich, wie erforderlich, durch die folgenden Ansprüche und deren Äquivalente begrenzt. Es ist ebenfalls ersichtlich, dass die Verwendung der Begriffe (enthalten), oder (aufweisen) die entsprechend nachstehend aufgeführten Gegenstände und deren Äquivalente als auch zusätzliche Gegenstände, welche vor, nach, oder zwischen den aufgeführten Gegenständen genannt sind, umfassen.

Claims (23)

  1. Programmierbarer serieller Anschluß, aufweisend: ein erstes Schieberegistermodul (312) einschließlich einem Schieberegister, aufweisend einen Eingabekanal zum Empfangen einer parallelen Eingabe einer ersten Vielzahl von Bits und einen ersten Ausgabekanal zum Vorsehen einer seriellen Ausgabe einer zweiten Vielzahl von Bits, und ein weiteres Register zum Steuern des Schieberegistermoduls; einen Taktgenerator; und eine erste Zustandsmaschine (320), dadurch gekennzeichnet, daß der Taktgenerator (360) ein erstes Taktsignal an das erste Schieberegistermodul vorsieht, und der Taktgenerator, sowie das erste Schieberegistermodul auf Instruktionen von der Zustandsmaschine reagiert, so daß die Zustandsmaschine zumindest eine Instruktion ausgeben kann, um eine Ausgabe der zweiten Vielzahl von Bits von dem Schieberegister ohne weitere Steuerung von der Zustandsmaschine zu verursachen.
  2. Programmierbarer serieller Anschluß nach Anspruch 1, wobei der Taktgenerator einen zweiten Ausgabekanal an die erste Zustandsmaschine aufweist, und der Kanal ein zweites Taktsignal an die erste Zustandsmaschine vorsieht, wobei das Signal eine zweite Vielzahl von Taktimpulsen aufweist.
  3. Programmierbarer serieller Anschluß nach den Ansprüchen 1 oder 2, wobei der Taktgenerator mit einer ersten Zustandsmaschine durch ein Gate gekoppelt ist, welches durch zumindest eine der Instruktionen steuerbar ist.
  4. Programmierbarer serieller Anschluß nach Anspruch 3, wobei das Gate steuerbar ist, um das zweite Taktsignal zu blockieren, während das Schieberegister die serielle Ausgabe vorsieht.
  5. Programmierbarer serieller Anschluß nach Anspruch 2, ferner einen Teiler aufweisend, welcher mit dem zweiten Ausgabekanal gekoppelt ist, um das zweite Taktsignal zu empfangen, und mit dem ersten Ausgabekanal gekoppelt ist, um das erste Taktsignal vorzusehen, wobei das zweite Taktsignal geteilt wird, um das erste Taktsignal zu bilden.
  6. Programmierbarer serieller Anschluß nach einem der vorhergehenden Ansprüche, wobei die Zustandsmaschine konfiguriert und angeordnet ist, um Instruktionen entsprechend einer Vielzahl von seriellen Kommunikationsprotokollen vorzusehen.
  7. Programmierbarer serieller Anschluß nach Anspruch 2 oder einem der Ansprüche 3 bis 6 sofern dieser von Anspruch 2 abhängig ist, wobei jedes der zweiten Vielzahl von Bits in Reaktion auf einen Taktimpuls der zweiten Vielzahl von Impulsen ausgegeben wird.
  8. Programmierbarer serieller Anschluß nach Anspruch 2 oder einem der Ansprüche 3 bis 7, sofern dieser von Anspruch 2 abhängig ist, wobei das Schieberegistermodul ferner einen Bit-Zähler aufweist, und der Bit-Zähler konfiguriert ist, einen numerischen Zählwert der seriellen Ausgabe der zweiten Vielzahl von Bits beizubehalten.
  9. Programmierbarer serieller Anschluß nach Anspruch 8, wobei der Bit-Zähler in Reaktion auf einen Taktimpuls der – zweiten Vielzahl von Impulsen vermindert wird.
  10. Programmierbarer serieller Anschluß nach Anspruch 9, wobei jedes der zweiten Vielzahl von Bits entweder ein Daten-Bit, ein Paritäts-Bit, oder ein Stop-Bit ist.
  11. Programmierbarer serieller Anschluß nach Anspruch 10, wobei jedes der zweiten Vielzahl von Bits basierend auf dem Bit-Zählwert ausgewählt wird.
  12. Programmierbarer serieller Anschluß nach einem der vorhergehenden Ansprüche, wobei das erste Schieberegistermodul ferner einen Paritäts-Generator aufweist.
  13. Programmierbarer serieller Anschluß nach Anspruch 12, wobei das erste Schieberegistermodul ein Paritäts-Bit von dem Paritäts-Generator in Reaktion auf einen Taktimpuls der zweiten Vielzahl von Impulsen ausgibt.
  14. Programmierbarer serieller Anschluß nach einem der vorhergehenden Ansprüche, ferner einen programmierbaren Treiber aufweisend, welcher mit dem ersten Ausgabekanal gekoppelt ist, um die elektrischen Parameter der seriellen Ausgabe zu steuern.
  15. Programmierbarer serieller Anschluß nach einem der vorhergehenden Ansprüche, ferner ein Interrupt-Verarbeitungsmodul aufweisend, welches mit der ersten Zustandsmaschine gekoppelt ist, um einen Interrupt der Zustandsmaschine zu verursachen.
  16. Programmierbarer serieller Anschluß nach einem der vorhergehenden Ansprüche, ferner ein zweites Schieberegistermodul aufweisend, wobei der Taktgenerator mit dem zweiten Schieberegistermodul gekoppelt ist, um ein zweites Taktsignal vorzusehen, welches eine zweite Vielzahl von Taktimpulsen aufweist, und das zweite Schieberegistermodul in Reaktion auf das zweite Taktsignal eine zweite serielle Ausgabe vorsieht.
  17. Verfahren zum Steuern eines Schieberegistermoduls, aufweisend ein erstes Schieberegister, welches eine erste Vielzahl von Bits enthält, um eine serielle Ausgabe entsprechend einem ausgewählten einer Vielzahl von seriellen Kommunikationsprotokollen vorzusehen, wobei das erste Schieberegistermodul mit einem Taktgenerator und einer Zustandsmaschine gekoppelt ist, und das Verfahren aufweist: Auswählen einer Instruktionssequenz von einer Vielzahl von Instruktionssequenzen entsprechend dem ausgewählten Protokoll, welche durch die Zustandsmaschine ausgeführt werden soll, wobei jede der Instruktionssequenzen einem Protokoll entspricht; Steuern des Taktgenerators entsprechend einer Instruktion der ausgewählten Instruktionssequenz, um eine erste Vielzahl von Taktimpulsen an das Schieberegistermodul vorzusehen, und Ausgeben einer zweiten Vielzahl von Bits, welche der ersten Vielzahl von Bits entsprechen, in Reaktion auf die Taktimpulse und Ausführen der Instruktionssequenz ohne weitere Steuerung durch die Zustandsmaschine
  18. Verfahren zum Steuern eines Schieberegistermoduls nach Anspruch 17, ferner einen Vorgang des Beibehaltens eines Zählwerts der zweiten Vielzahl von Bits aufweisend.
  19. Verfahren zum Steuern eines Schieberegistermoduls nach Anspruch 18, ferner einen Vorgang des selektiven Ausgebens eines Paritäts-Bits in Reaktion auf den Zählwert aufweisend.
  20. Verfahren zum Steuern eines Schieberegisters nach den Ansprüchen 17 bis 19, ferner einen Vorgang des Steuerns des Taktgenerators zum Vorsehen einer zweiten Vielzahl von Taktimpulsen zum Steuern der Ausführung der Instruktionssequenz durch die Zustandsmaschine aufweisend.
  21. Verfahren zum Steuern eines Schieberegisters nach Anspruch 20, ferner einen Vorgang des Blockierens der zweiten Vielzahl von Taktimpulsen aufweisend, wobei das Ausführen der Vielzahl von Instruktionen während dem Ausgeben der zweiten Vielzahl von Bits gestoppt wird.
  22. Verfahren zum Steuern eines Schieberegistermoduls nach einem der Ansprüche 17 bis 21, ferner den Vorgang des Steuerns des Taktgenerators zum Vorsehen einer dritten Vielzahl von Taktimpulsen an ein zweites Schieberegistermodul, welches eine dritte Vielzahl von Bits enthält, und das Ausgeben einer vierten Vielzahl von Bits in Reaktion auf die Taktimpulse entsprechend der dritten Vielzahl von Bits aufweisend.
  23. Verfahren zum Steuern eines Schieberegisters nach Anspruch 17, wobei das Steuern des Taktgenerators entsprechend einer Instruktion das Angeben der Anzahl von Impulsen und der Taktrate enthält.
DE60211921T 2001-08-29 2002-08-29 Architektur und system von einem generischen seriellen port Expired - Lifetime DE60211921T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US31565501P 2001-08-29 2001-08-29
US315655P 2001-08-29
PCT/US2002/027920 WO2003021453A2 (en) 2001-08-29 2002-08-29 Generic serial port architecture and system

Publications (2)

Publication Number Publication Date
DE60211921D1 DE60211921D1 (de) 2006-07-06
DE60211921T2 true DE60211921T2 (de) 2006-10-05

Family

ID=23225453

Family Applications (6)

Application Number Title Priority Date Filing Date
DE60210633T Expired - Lifetime DE60210633T2 (de) 2001-08-29 2002-08-29 Verfahren und vorrichtungen zur verbesserung des durchsatzes von eingebetteten prozessoren auf cache-basis durch umschalten von tasks als reaktion auf eine cache-verfehlung
DE60223555T Expired - Lifetime DE60223555T2 (de) 2001-08-29 2002-08-29 Verfahren und apparat zur takt- und leistungssteuerung in drahtlosen systemen
DE60239347T Expired - Lifetime DE60239347D1 (de) 2001-08-29 2002-08-29 Hochgeschwindigkeitsablaufverfolung eines computerprogramms
DE60211921T Expired - Lifetime DE60211921T2 (de) 2001-08-29 2002-08-29 Architektur und system von einem generischen seriellen port
DE60228268T Expired - Lifetime DE60228268D1 (de) 2001-08-29 2002-08-29 G einer versorgungsspannung
DE60223051T Expired - Lifetime DE60223051T2 (de) 2001-08-29 2002-08-29 Anordnung und verfahren zum schnellen einschalten einer phase-locked loop

Family Applications Before (3)

Application Number Title Priority Date Filing Date
DE60210633T Expired - Lifetime DE60210633T2 (de) 2001-08-29 2002-08-29 Verfahren und vorrichtungen zur verbesserung des durchsatzes von eingebetteten prozessoren auf cache-basis durch umschalten von tasks als reaktion auf eine cache-verfehlung
DE60223555T Expired - Lifetime DE60223555T2 (de) 2001-08-29 2002-08-29 Verfahren und apparat zur takt- und leistungssteuerung in drahtlosen systemen
DE60239347T Expired - Lifetime DE60239347D1 (de) 2001-08-29 2002-08-29 Hochgeschwindigkeitsablaufverfolung eines computerprogramms

Family Applications After (2)

Application Number Title Priority Date Filing Date
DE60228268T Expired - Lifetime DE60228268D1 (de) 2001-08-29 2002-08-29 G einer versorgungsspannung
DE60223051T Expired - Lifetime DE60223051T2 (de) 2001-08-29 2002-08-29 Anordnung und verfahren zum schnellen einschalten einer phase-locked loop

Country Status (7)

Country Link
US (10) US6768358B2 (de)
EP (9) EP1421704B1 (de)
JP (10) JP4170218B2 (de)
CN (9) CN100361109C (de)
AU (2) AU2002331774A1 (de)
DE (6) DE60210633T2 (de)
WO (8) WO2003021426A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011122074A1 (de) 2010-12-20 2012-06-21 Dmos Gmbh Bussystem zur Kommunikation und Stromversorgung von Teilnehmerschaltungen und Verfahren zur Reduzierung des Energieverbrauchs in Baugruppen von Bussystemen

Families Citing this family (327)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4170218B2 (ja) * 2001-08-29 2008-10-22 メディアテック インコーポレーテッド キャッシュミスに応答してタスクを切り替えることによってキャッシュベース埋め込みプロセッサのスループットを改善する方法および装置
GB0123421D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Power management system
US7502817B2 (en) * 2001-10-26 2009-03-10 Qualcomm Incorporated Method and apparatus for partitioning memory in a telecommunication device
US6944780B1 (en) 2002-01-19 2005-09-13 National Semiconductor Corporation Adaptive voltage scaling clock generator for use in a digital processing component and method of operating the same
EP1351117A1 (de) * 2002-04-03 2003-10-08 Hewlett-Packard Company Datenverarbeitungssystem und -verfahren
US7941675B2 (en) 2002-12-31 2011-05-10 Burr James B Adaptive power control
US7180322B1 (en) 2002-04-16 2007-02-20 Transmeta Corporation Closed loop feedback control of integrated circuits
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7149874B2 (en) * 2002-08-16 2006-12-12 Micron Technology, Inc. Memory hub bypass circuit and method
US7836252B2 (en) 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US7395447B2 (en) * 2002-09-16 2008-07-01 Silicon Labs Cp, Inc. Precision oscillator for an asynchronous transmission system
US7770042B2 (en) * 2002-10-03 2010-08-03 Via Technologies, Inc. Microprocessor with improved performance during P-state transitions
US7698583B2 (en) * 2002-10-03 2010-04-13 Via Technologies, Inc. Microprocessor capable of dynamically reducing its power consumption in response to varying operating temperature
US7290156B2 (en) * 2003-12-17 2007-10-30 Via Technologies, Inc. Frequency-voltage mechanism for microprocessor power management
US7814350B2 (en) * 2002-10-03 2010-10-12 Via Technologies, Inc. Microprocessor with improved thermal monitoring and protection mechanism
US7774627B2 (en) * 2002-10-03 2010-08-10 Via Technologies, Inc. Microprocessor capable of dynamically increasing its performance in response to varying operating temperature
US7882369B1 (en) 2002-11-14 2011-02-01 Nvidia Corporation Processor performance adjustment system and method
US7886164B1 (en) 2002-11-14 2011-02-08 Nvidia Corporation Processor temperature adjustment system and method
US7849332B1 (en) * 2002-11-14 2010-12-07 Nvidia Corporation Processor voltage adjustment system and method
US7080268B2 (en) * 2002-12-03 2006-07-18 Intel Corporation Method and apparatus for regulating power to electronic circuits
US7065663B2 (en) * 2002-12-19 2006-06-20 Intel Corporation Methods and apparatus to control power state transitions
US7146822B2 (en) 2002-12-30 2006-12-12 Intel Corporation Centrifugal liquid pump with perimeter magnetic drive
US7444524B2 (en) 2002-12-30 2008-10-28 Intel Corporation Dynamic voltage transitions
US7953990B2 (en) 2002-12-31 2011-05-31 Stewart Thomas E Adaptive power control based on post package characterization of integrated circuits
US7228242B2 (en) 2002-12-31 2007-06-05 Transmeta Corporation Adaptive power control based on pre package characterization of integrated circuits
US7811231B2 (en) 2002-12-31 2010-10-12 Abbott Diabetes Care Inc. Continuous glucose monitoring system and methods of use
KR20050115227A (ko) * 2003-01-23 2005-12-07 유니버시티 오브 로체스터 다중 클록 도메인 마이크로프로세서
US7069461B1 (en) * 2003-01-24 2006-06-27 National Semiconductor Corporation Closed-loop, supply-adjusted RAM memory circuit
US7206959B1 (en) * 2003-01-24 2007-04-17 National Semiconductor Corporation Closed-loop, supply-adjusted ROM memory circuit
US7587287B2 (en) 2003-04-04 2009-09-08 Abbott Diabetes Care Inc. Method and system for transferring analyte test data
DE60319503T2 (de) * 2003-04-11 2009-05-28 Telefonaktiebolaget Lm Ericsson (Publ) Verfahren zur Synchronisierung in einem mobilen Funkendgerät
TWI397795B (zh) * 2003-05-07 2013-06-01 Mosaid Technologies Inc 用於使用功率島管理積體電路上功率的系統及其方法
JP4033066B2 (ja) * 2003-05-07 2008-01-16 ソニー株式会社 周波数制御装置、情報処理装置、周波数制御方法及びプログラム
JP2004348662A (ja) * 2003-05-26 2004-12-09 Toshiba Corp 電子機器、電源制御装置および電源制御方法
US7375553B1 (en) * 2003-05-28 2008-05-20 Actel Corporation Clock tree network in a field programmable gate array
US8066639B2 (en) 2003-06-10 2011-11-29 Abbott Diabetes Care Inc. Glucose measuring device for use in personal area network
US7245145B2 (en) 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US6822481B1 (en) * 2003-06-12 2004-11-23 Agilent Technologies, Inc. Method and apparatus for clock gating clock trees to reduce power dissipation
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7260685B2 (en) 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7836222B2 (en) * 2003-06-26 2010-11-16 International Business Machines Corporation System and method for tracking messages between a processing unit and an external device
KR100540483B1 (ko) * 2003-06-30 2006-01-11 주식회사 하이닉스반도체 데이터 억세스 위치에 관계없이 연속적인 버스트 모드로 데이터를 억세스할 수 있는 반도체 메모리 장치 및 그의 구동방법
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7210059B2 (en) 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7133991B2 (en) * 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US7196562B1 (en) * 2003-08-26 2007-03-27 Integrated Device Technology, Inc. Programmable clock drivers that support CRC error checking of configuration data during program restore operations
US7136958B2 (en) 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7287245B2 (en) * 2003-09-17 2007-10-23 Faraday Technology Corp. Method for real-time instruction information tracing
US7194593B2 (en) * 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7225303B2 (en) * 2003-09-22 2007-05-29 Micron Technology, Inc. Method and apparatus for accessing a dynamic memory device by providing at least one of burst and latency information over at least one of redundant row and column address lines
JP4837247B2 (ja) 2003-09-24 2011-12-14 パナソニック株式会社 プロセッサ
US7085943B2 (en) * 2003-09-26 2006-08-01 Freescale Semiconductor, Inc. Method and circuitry for controlling supply voltage in a data processing system
US20050081075A1 (en) * 2003-10-14 2005-04-14 Andrej Kocev Computer system, carrier medium and method for adjusting an expiration period
US7120743B2 (en) * 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
TWI254882B (en) * 2003-11-07 2006-05-11 Via Tech Inc Rate multiplication method and rate multiplier
GB2408357A (en) * 2003-11-18 2005-05-25 Motorola Inc Regulating a voltage supply to a semiconductor device
US7631307B2 (en) 2003-12-05 2009-12-08 Intel Corporation User-programmable low-overhead multithreading
US7692477B1 (en) 2003-12-23 2010-04-06 Tien-Min Chen Precise control component for a substrate potential regulation circuit
US7129771B1 (en) 2003-12-23 2006-10-31 Transmeta Corporation Servo loop for well bias voltage source
US7649402B1 (en) 2003-12-23 2010-01-19 Tien-Min Chen Feedback-controlled body-bias voltage source
US7012461B1 (en) 2003-12-23 2006-03-14 Transmeta Corporation Stabilization component for a substrate potential regulation circuit
KR101136036B1 (ko) * 2003-12-24 2012-04-18 삼성전자주식회사 유휴 모드에서의 전력 소모가 감소된 프로세서 시스템 및그 방법
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7188219B2 (en) 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
WO2005089103A2 (en) 2004-02-17 2005-09-29 Therasense, Inc. Method and system for providing data communication in continuous glucose monitoring and management system
CN100361040C (zh) * 2004-02-24 2008-01-09 中国科学院计算技术研究所 一种soc架构下的处理器核动态变频装置和方法
US7479753B1 (en) 2004-02-24 2009-01-20 Nvidia Corporation Fan speed controller
US7240170B2 (en) * 2004-02-25 2007-07-03 Analog Devices, Inc. High/low priority memory
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7313707B2 (en) * 2004-03-09 2007-12-25 Hewlett-Packard Development Company, L.P. Systems and methods for configuring ports
US7613911B2 (en) * 2004-03-12 2009-11-03 Arm Limited Prefetching exception vectors by early lookup exception vectors within a cache memory
FI20040418A (fi) * 2004-03-18 2005-09-19 Nokia Corp Digitaalijärjestelmän kellokontrolli
US7769950B2 (en) * 2004-03-24 2010-08-03 Qualcomm Incorporated Cached memory system and cache controller for embedded digital signal processor
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7120723B2 (en) 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US6980042B2 (en) 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7590797B2 (en) 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US7363419B2 (en) 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7971191B2 (en) * 2004-06-10 2011-06-28 Hewlett-Packard Development Company, L.P. System and method for analyzing a process
US7042260B2 (en) * 2004-06-14 2006-05-09 Micron Technology, Inc. Low power and low timing jitter phase-lock loop and method
EP1607835A1 (de) * 2004-06-15 2005-12-21 Koninklijke Philips Electronics N.V. Geschlossener Regelungskreis zur Leistungsabstimmung
US20080195878A1 (en) * 2004-06-15 2008-08-14 Koninklijke Philips Electronics N.V. Control Scheme for Binary Control of a Performance Parameter
US7774625B1 (en) * 2004-06-22 2010-08-10 Eric Chien-Li Sheng Adaptive voltage control by accessing information stored within and specific to a microprocessor
US7562233B1 (en) 2004-06-22 2009-07-14 Transmeta Corporation Adaptive control of operating and body bias voltages
US7401241B2 (en) * 2004-06-22 2008-07-15 Intel Corporation Controlling standby power of low power devices
KR100598011B1 (ko) * 2004-06-29 2006-07-06 삼성전자주식회사 클럭 사용 회로 및 클럭 신호 발생 방법
US20050008095A1 (en) * 2004-07-23 2005-01-13 Rush Frederick A. Apparatus using interrupts for controlling a processor for radio isolation and associated methods
US8472990B2 (en) * 2004-07-23 2013-06-25 St Ericsson Sa Apparatus using interrupts for controlling a processor for radio isolation and associated method
US7681065B2 (en) * 2004-08-16 2010-03-16 Broadcom Corporation Method and system for a message processor switch for performing incremental redundancy in edge compliant terminals
US7312487B2 (en) * 2004-08-16 2007-12-25 International Business Machines Corporation Three dimensional integrated circuit
US7308590B2 (en) 2004-10-15 2007-12-11 Intel Corporation Automatic dynamic processor operating voltage control
US7434073B2 (en) 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
US7456829B2 (en) * 2004-12-03 2008-11-25 Hewlett-Packard Development Company, L.P. Methods and systems to control electronic display brightness
CN1319274C (zh) * 2004-12-10 2007-05-30 展讯通信(上海)有限公司 射频接收系统锁定时间及锁定后频率误差的评估方法
US7379718B2 (en) 2004-12-20 2008-05-27 Marvell World Trade Ltd. Method and apparatus to manage power consumption of a semiconductor device
US7228446B2 (en) * 2004-12-21 2007-06-05 Packet Digital Method and apparatus for on-demand power management
US7337335B2 (en) * 2004-12-21 2008-02-26 Packet Digital Method and apparatus for on-demand power management
FR2882449A1 (fr) * 2005-01-21 2006-08-25 Meiosys Soc Par Actions Simpli Procede non intrusif de rejeu d'evenements internes au sein d'un processus applicatif, et systeme mettant en oeuvre ce procede
FR2881246B1 (fr) * 2005-01-21 2007-03-23 Meiosys Soc Par Actions Simpli Procede perdictif de gestion, de journalisation ou de rejeu d'operations non deterministes au sein du deroulement d'un processus applicatif
US7409520B2 (en) 2005-01-25 2008-08-05 International Business Machines Corporation Systems and methods for time division multiplex multithreading
JP2006236241A (ja) * 2005-02-28 2006-09-07 Toshiba Corp 周辺装置
US20060215567A1 (en) * 2005-03-25 2006-09-28 Arun Raghunath Method and apparatus for monitoring path statistics
US7529911B1 (en) * 2005-05-26 2009-05-05 Sun Microsystems, Inc. Hardware-based technique for improving the effectiveness of prefetching during scout mode
CN1881798B (zh) * 2005-06-16 2011-08-31 旺玖科技股份有限公司 有理数倍频电路与产生有理数倍频的方法
US8745627B2 (en) * 2005-06-27 2014-06-03 Qualcomm Incorporated System and method of controlling power in a multi-threaded processor
US20070008011A1 (en) * 2005-06-29 2007-01-11 Paulette Thurston Distributed power and clock management in a computerized system
US8225112B2 (en) * 2005-07-14 2012-07-17 Nytell Software LLC Using historic load profiles to dynamically adjust operating frequency and available power to a handheld multimedia device processor core
US7953960B2 (en) * 2005-10-18 2011-05-31 International Business Machines Corporation Method and apparatus for delaying a load miss flush until issuing the dependent instruction
US7600145B2 (en) * 2005-10-26 2009-10-06 Intel Corporation Clustered variations-aware architecture
US7766829B2 (en) 2005-11-04 2010-08-03 Abbott Diabetes Care Inc. Method and system for providing basal profile modification in analyte monitoring and management systems
US7809928B1 (en) * 2005-11-29 2010-10-05 Nvidia Corporation Generating event signals for performance register control using non-operative instructions
US8253748B1 (en) 2005-11-29 2012-08-28 Nvidia Corporation Shader performance registers
TW200805047A (en) * 2005-12-23 2008-01-16 Koninkl Philips Electronics Nv Performance analysis based system level power management
CN100346306C (zh) * 2006-01-06 2007-10-31 浙江大学 基于动态调频技术的节能编译方法
US7499724B2 (en) * 2006-01-30 2009-03-03 Harris Corporation Event sequencer used for controlling the sequence and timing of events in software defined radio
JP2007233718A (ja) * 2006-03-01 2007-09-13 Canon Inc 制御装置及び半導体集積回路
US20070214374A1 (en) * 2006-03-13 2007-09-13 Mark Hempstead Ultra low power system for sensor network applications
US7620438B2 (en) 2006-03-31 2009-11-17 Abbott Diabetes Care Inc. Method and system for powering an electronic device
US8226891B2 (en) 2006-03-31 2012-07-24 Abbott Diabetes Care Inc. Analyte monitoring devices and methods therefor
US7617409B2 (en) * 2006-05-01 2009-11-10 Arm Limited System for checking clock-signal correspondence
US7502913B2 (en) 2006-06-16 2009-03-10 Microsoft Corporation Switch prefetch in a multicore computer chip
EP1870787B1 (de) * 2006-06-20 2010-04-14 Siemens Aktiengesellschaft Verfahren zur Überwachung eines zyklischen Steuerungsprogramms
CN101449176B (zh) * 2006-06-30 2014-04-23 英特尔公司 泄漏功率估计
US7672393B2 (en) * 2006-08-02 2010-03-02 Richtek Technology Corporation Single-wire asynchronous serial interface
EP1895426A1 (de) * 2006-08-25 2008-03-05 Ali Corporation Sender und Übertragungssystem mit Verwendung desselben
JP4808108B2 (ja) 2006-08-29 2011-11-02 パナソニック株式会社 プロセッサシステム
US8200807B2 (en) * 2006-08-31 2012-06-12 The Mathworks, Inc. Non-blocking local events in a state-diagramming environment
US7958291B2 (en) * 2006-10-10 2011-06-07 Atmel Rousset S.A.S. Supplemental communication interface
US7840825B2 (en) * 2006-10-24 2010-11-23 International Business Machines Corporation Method for autonomous dynamic voltage and frequency scaling of microprocessors
EP1919103B8 (de) * 2006-11-02 2016-11-30 Google Technology Holdings LLC Verfahren und Vorrichtung zur automatischen Frequenzkorrektur in einer Vorrichtung mit mehreren Betriebsmodi
WO2008056293A2 (en) * 2006-11-08 2008-05-15 Nxp B.V. Fast adaptive voltage scaling
TWI335531B (en) * 2006-12-13 2011-01-01 Inst Information Industry Apparatus, method, application program, and computer readable medium thereof for generating and utilizing a feature code to monitor a program
US7840849B2 (en) * 2006-12-21 2010-11-23 Novell, Inc. Methods and apparatus for debugging software including divisions of an execution history of a debuggee program
US8667198B2 (en) * 2007-01-07 2014-03-04 Apple Inc. Methods and systems for time keeping in a data processing system
US7917784B2 (en) * 2007-01-07 2011-03-29 Apple Inc. Methods and systems for power management in a data processing system
US7949801B2 (en) * 2007-01-31 2011-05-24 Pitney Bowes Inc. Main processor initiating command timing signal via DMA to coprocessor in order to synchronize execution of instructions
US20080199894A1 (en) 2007-02-15 2008-08-21 Abbott Diabetes Care, Inc. Device and method for automatic data acquisition and/or detection
US8123686B2 (en) 2007-03-01 2012-02-28 Abbott Diabetes Care Inc. Method and apparatus for providing rolling data in communication systems
US7937076B2 (en) * 2007-03-07 2011-05-03 Harris Corporation Software defined radio for loading waveform components at runtime in a software communications architecture (SCA) framework
JP4950716B2 (ja) * 2007-03-22 2012-06-13 株式会社日立ハイテクノロジーズ 画像処理システム、及び走査型電子顕微鏡装置
US7900069B2 (en) * 2007-03-29 2011-03-01 Intel Corporation Dynamic power reduction
US7743279B2 (en) * 2007-04-06 2010-06-22 Apple Inc. Program counter (PC) trace
US7917799B2 (en) * 2007-04-12 2011-03-29 International Business Machines Corporation Method and system for digital frequency clocking in processor cores
US8161314B2 (en) * 2007-04-12 2012-04-17 International Business Machines Corporation Method and system for analog frequency clocking in processor cores
DE102007019543A1 (de) 2007-04-25 2008-10-30 Rohde & Schwarz Gmbh & Co. Kg Messgerät mit serieller digitaler Schnittstelle
US9134782B2 (en) 2007-05-07 2015-09-15 Nvidia Corporation Maintaining optimum voltage supply to match performance of an integrated circuit
US8665091B2 (en) 2007-05-08 2014-03-04 Abbott Diabetes Care Inc. Method and device for determining elapsed sensor life
US8461985B2 (en) 2007-05-08 2013-06-11 Abbott Diabetes Care Inc. Analyte monitoring system and methods
US20080281171A1 (en) * 2007-05-08 2008-11-13 Abbott Diabetes Care, Inc. Analyte monitoring system and methods
US8456301B2 (en) 2007-05-08 2013-06-04 Abbott Diabetes Care Inc. Analyte monitoring system and methods
US7928850B2 (en) 2007-05-08 2011-04-19 Abbott Diabetes Care Inc. Analyte monitoring system and methods
US7845568B2 (en) * 2007-05-09 2010-12-07 Atmel Rousset S.A.S. Managing power and timing in a smart card device
KR101392788B1 (ko) * 2007-05-23 2014-05-09 에이저 시스템즈 엘엘시 단일 및 다중 무선 기술 통신 시스템들에서 모바일 장치들에 대한 시간 절약 셀 검색을 위한 시스템 및 방법
US8645740B2 (en) * 2007-06-08 2014-02-04 Apple Inc. Methods and systems to dynamically manage performance states in a data processing system
US9313067B2 (en) * 2007-08-14 2016-04-12 Qualcomm Incorporated Multi-bandwidth communication system using a shared baseband processor
US7711864B2 (en) 2007-08-31 2010-05-04 Apple Inc. Methods and systems to dynamically manage performance states in a data processing system
TWI402647B (zh) * 2007-09-14 2013-07-21 Asustek Comp Inc 可動態調整電壓及有效節能之電壓控制裝置、方法及電腦裝置
US7921312B1 (en) 2007-09-14 2011-04-05 National Semiconductor Corporation System and method for providing adaptive voltage scaling with multiple clock domains inside a single voltage domain
GB2453174B (en) * 2007-09-28 2011-12-07 Advanced Risc Mach Ltd Techniques for generating a trace stream for a data processing apparatus
US7945804B2 (en) * 2007-10-17 2011-05-17 International Business Machines Corporation Methods and systems for digitally controlled multi-frequency clocking of multi-core processors
US9354890B1 (en) 2007-10-23 2016-05-31 Marvell International Ltd. Call stack structure for enabling execution of code outside of a subroutine and between call stack frames
US20090108817A1 (en) * 2007-10-30 2009-04-30 Topower Computer Industrial Co., Ltd. Method for actuation by boosting power source voltage
CN101436167B (zh) * 2007-11-16 2011-03-23 宏达国际电子股份有限公司 解译串行传输信号的方法
US8578193B2 (en) 2007-11-28 2013-11-05 International Business Machines Corporation Apparatus, method and program product for adaptive real-time power and perfomance optimization of multi-core processors
KR20090059602A (ko) * 2007-12-07 2009-06-11 한국전자통신연구원 세션 메모리 버스를 구비한 암호화 장치
GB0724337D0 (en) * 2007-12-13 2008-01-23 Icera Inc Radio access technology
US8589706B2 (en) 2007-12-26 2013-11-19 Intel Corporation Data inversion based approaches for reducing memory power consumption
US20090182802A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Mobile device management scheduling
US8166145B2 (en) * 2008-01-10 2012-04-24 Microsoft Corporation Managing event-based conditional recurrent schedules
US8230436B2 (en) * 2008-01-10 2012-07-24 Microsoft Corporation Aggregating recurrent schedules to optimize resource consumption
US9442758B1 (en) 2008-01-21 2016-09-13 Marvell International Ltd. Dynamic processor core switching
US8370663B2 (en) 2008-02-11 2013-02-05 Nvidia Corporation Power management with dynamic frequency adjustments
US8595538B2 (en) * 2008-03-03 2013-11-26 Quintic Holdings Single-clock-based multiple-clock frequency generator
US8312299B2 (en) 2008-03-28 2012-11-13 Packet Digital Method and apparatus for dynamic power management control using serial bus management protocols
EP2107684A1 (de) * 2008-03-31 2009-10-07 Telefonaktiebolaget LM Ericsson (publ) Ereignisbehandlung in einer Schaltung für Funkverbindung
US7826382B2 (en) 2008-05-30 2010-11-02 Abbott Diabetes Care Inc. Close proximity communication device and methods
US8112475B2 (en) 2008-06-27 2012-02-07 Microsoft Corporation Managing data delivery based on device state
US8090826B2 (en) * 2008-06-27 2012-01-03 Microsoft Corporation Scheduling data delivery to manage device resources
US8904083B2 (en) * 2008-07-30 2014-12-02 Infineon Technologies Ag Method and apparatus for storing data in solid state memory
JP2010072897A (ja) * 2008-09-18 2010-04-02 Nec Electronics Corp クロック供給装置
US8122270B2 (en) * 2008-09-29 2012-02-21 Intel Corporation Voltage stabilization for clock signal frequency locking
US8127160B2 (en) 2008-10-13 2012-02-28 International Business Machines Corporation Dynamic frequency and voltage scaling for a computer processor
JP2010097277A (ja) * 2008-10-14 2010-04-30 Toshiba Corp 情報処理装置
US20100094572A1 (en) * 2008-10-15 2010-04-15 International Business Machines Corporation Dynamic Frequency And Voltage Scaling For A Computer Processor
JP5509579B2 (ja) * 2008-11-21 2014-06-04 セイコーエプソン株式会社 映像出力装置および映像出力方法ならびにプロジェクタ
US8230138B2 (en) * 2008-11-28 2012-07-24 Panasonic Corporation Memory control device, data processor, and data read method
TWI363498B (en) * 2008-12-03 2012-05-01 Ind Tech Res Inst A tri-mode delay type phase lock loop
JP5816407B2 (ja) * 2009-02-27 2015-11-18 ルネサスエレクトロニクス株式会社 半導体集積回路装置
US8285917B2 (en) * 2009-03-26 2012-10-09 Scaleo Chip Apparatus for enhancing flash memory access
WO2010127050A1 (en) 2009-04-28 2010-11-04 Abbott Diabetes Care Inc. Error detection in critical repeating data in a wireless sensor system
WO2010127187A1 (en) 2009-04-29 2010-11-04 Abbott Diabetes Care Inc. Method and system for providing data communication in continuous glucose monitoring and management system
WO2010138856A1 (en) 2009-05-29 2010-12-02 Abbott Diabetes Care Inc. Medical device antenna systems having external antenna configurations
EP2473099A4 (de) 2009-08-31 2015-01-14 Abbott Diabetes Care Inc Analytüberwachungssystem und -verfahren zur leistungs- und rauschverwaltung
US9314195B2 (en) * 2009-08-31 2016-04-19 Abbott Diabetes Care Inc. Analyte signal processing device and methods
EP2290542B1 (de) * 2009-09-01 2013-03-27 Research In Motion Limited System und Verfahren zur Sequenzierung von Funkelementen für einen Mehrbandempfänger mit mehreren Abwärtsverbindungen
US8213974B2 (en) * 2009-09-01 2012-07-03 Research In Motion Limited System and method for sequencing radio items for a multi downlink multi carrier receiver
JP2011118469A (ja) * 2009-11-30 2011-06-16 Toshiba Corp メモリ管理装置およびメモリ管理方法
JP2011139370A (ja) * 2009-12-28 2011-07-14 Canon Inc 電子機器とその制御方法
US9256265B2 (en) 2009-12-30 2016-02-09 Nvidia Corporation Method and system for artificially and dynamically limiting the framerate of a graphics processing unit
US9830889B2 (en) 2009-12-31 2017-11-28 Nvidia Corporation Methods and system for artifically and dynamically limiting the display resolution of an application
US9582443B1 (en) * 2010-02-12 2017-02-28 Marvell International Ltd. Serial control channel processor for executing time-based instructions
US9000804B2 (en) 2010-03-03 2015-04-07 Freescale Semiconductor, Inc. Integrated circuit device comprising clock gating circuitry, electronic device and method for dynamically configuring clock gating
US8423802B2 (en) * 2010-04-07 2013-04-16 Andes Technology Corporation Power scaling module and power scaling unit of an electronic system having a function unit in a standby state which is insensitive to change in frequency or voltage during synchronization
US8839006B2 (en) 2010-05-28 2014-09-16 Nvidia Corporation Power consumption reduction systems and methods
US8766666B2 (en) 2010-06-10 2014-07-01 Micron Technology, Inc. Programmable device, hierarchical parallel machines, and methods for providing state information
CN101860353B (zh) * 2010-06-17 2012-02-29 广州市广晟微电子有限公司 数模混合芯片中的时钟电路控制装置及方法
US8667308B2 (en) * 2010-06-18 2014-03-04 Apple Inc. Dynamic voltage dithering
WO2012004863A1 (ja) * 2010-07-07 2012-01-12 ルネサスエレクトロニクス株式会社 データ処理装置およびデータ処理システム
US20120017035A1 (en) * 2010-07-16 2012-01-19 Plx Technology, Inc. Runtime reprogramming of a processor code space memory area
WO2012010927A1 (en) * 2010-07-20 2012-01-26 Freescale Semiconductor, Inc. Clock circuit for providing an electronic device with a clock signal, electronic device with a clock circuit and method for providing an electronic device with a clock signal
JP2012033001A (ja) 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置および情報処理方法
US20120042212A1 (en) * 2010-08-10 2012-02-16 Gilbert Laurenti Mixed Mode Processor Tracing
JP5598161B2 (ja) * 2010-08-26 2014-10-01 ヤマハ株式会社 クロック発生回路
US8732495B2 (en) 2010-08-31 2014-05-20 Integrated Device Technology, Inc. Systems, apparatuses and methods for dynamic voltage and frequency control of components used in a computer system
WO2012030329A1 (en) * 2010-08-31 2012-03-08 Integrated Device Technology, Inc. Systems, apparatuses and methods for dynamic voltage and frequency control of components used in a computer system
US20120072632A1 (en) * 2010-09-17 2012-03-22 Paul Kimelman Deterministic and non-Deterministic Execution in One Processor
JP5581960B2 (ja) * 2010-10-14 2014-09-03 凸版印刷株式会社 半導体装置
CN102457270B (zh) * 2010-10-29 2013-09-04 扬智科技股份有限公司 低增益压控振荡器的控制方法
CN103201702B (zh) * 2010-11-09 2016-04-20 国际商业机器公司 对计算工作负载进行管理的方法和系统
US8564344B2 (en) * 2010-12-01 2013-10-22 Telefonaktiebolaget L M Ericsson (Publ) Phase-locked loop control voltage determination
CN102082506B (zh) * 2010-12-22 2012-12-12 复旦大学 适用于开关电源转换器的时钟频率选择电路
TW201232239A (en) * 2011-01-24 2012-08-01 Asmedia Technology Inc Method and controller allocating charging ports
CN102611148A (zh) * 2011-01-24 2012-07-25 祥硕科技股份有限公司 配置充电端口的方法与控制器
JP5284401B2 (ja) 2011-03-24 2013-09-11 株式会社東芝 動作切替装置およびプログラム
US8572421B2 (en) 2011-04-05 2013-10-29 Apple Inc. Adjusting device performance based on processing profiles
US8856571B2 (en) 2011-04-05 2014-10-07 Apple Inc. Adjusting device performance over multiple time domains
US9588881B2 (en) 2011-05-16 2017-03-07 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space having an instruction set optimized to minimize processor stack accesses
US8934279B2 (en) * 2011-05-16 2015-01-13 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) for code space and a portion of the stack memory space
US9910823B2 (en) 2011-05-16 2018-03-06 Cypress Semiconductor Corporation Stack processor using a ferroelectric random access memory (F-RAM) having an instruction set optimized to minimize memory fetch
US9135082B1 (en) * 2011-05-20 2015-09-15 Google Inc. Techniques and systems for data race detection
CN102170499B (zh) * 2011-05-24 2013-10-02 惠州Tcl移动通信有限公司 一种移动终端及其电源控制系统
US8884920B1 (en) 2011-05-25 2014-11-11 Marvell International Ltd. Programmatic sensing of capacitive sensors
US8855969B2 (en) 2011-06-27 2014-10-07 International Business Machines Corporation Frequency guard band validation of processors
US9098694B1 (en) 2011-07-06 2015-08-04 Marvell International Ltd. Clone-resistant logic
US9081517B2 (en) * 2011-08-31 2015-07-14 Apple Inc. Hardware-based automatic clock gating
US9069553B2 (en) 2011-09-06 2015-06-30 Marvell World Trade Ltd. Switching tasks between heterogeneous cores
GB2495959A (en) * 2011-10-26 2013-05-01 Imagination Tech Ltd Multi-threaded memory access processor
WO2013070794A2 (en) 2011-11-07 2013-05-16 Abbott Diabetes Care Inc. Analyte monitoring device and methods
JP2013106166A (ja) * 2011-11-14 2013-05-30 Sony Corp クロックゲーティング回路およびバスシステム
US9977482B2 (en) 2011-12-21 2018-05-22 Intel Corporation Method and apparatus for setting an I/O bandwidth-based processor frequency floor
CN104811194B (zh) * 2012-01-09 2018-05-01 青岛海信移动通信技术股份有限公司 一种集中式时钟装置和移动终端设备
TWI497304B (zh) * 2012-03-13 2015-08-21 Novatek Microelectronics Corp 序列介面傳送方法及其裝置
CN103324588B (zh) * 2012-03-22 2016-05-04 联咏科技股份有限公司 序列接口传送方法及其装置
US8943352B1 (en) * 2012-05-07 2015-01-27 Dust Networks, Inc. Low power timing, configuring, and scheduling
JP6103825B2 (ja) * 2012-06-07 2017-03-29 キヤノン株式会社 半導体集積回路、情報処理装置
US9317460B2 (en) * 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
CN103513698B (zh) * 2012-06-29 2017-03-01 联想(北京)有限公司 一种时钟信号校准方法、装置及电子设备
US8710879B2 (en) * 2012-07-06 2014-04-29 Silicon Integrated System Corp. Apparatus and method for multiplying frequency of a clock signal
US9968306B2 (en) 2012-09-17 2018-05-15 Abbott Diabetes Care Inc. Methods and apparatuses for providing adverse condition notification with enhanced wireless communication range in analyte monitoring systems
US9129072B2 (en) * 2012-10-15 2015-09-08 Qualcomm Incorporated Virtual GPIO
US10499884B2 (en) 2012-12-06 2019-12-10 White Eagle Sonic Technologies, Inc. System and method for scanning for a second object within a first object using an adaptive scheduler
US10076313B2 (en) 2012-12-06 2018-09-18 White Eagle Sonic Technologies, Inc. System and method for automatically adjusting beams to scan an object in a body
US9983905B2 (en) 2012-12-06 2018-05-29 White Eagle Sonic Technologies, Inc. Apparatus and system for real-time execution of ultrasound system actions
US9773496B2 (en) 2012-12-06 2017-09-26 White Eagle Sonic Technologies, Inc. Apparatus and system for adaptively scheduling ultrasound system actions
US9529080B2 (en) 2012-12-06 2016-12-27 White Eagle Sonic Technologies, Inc. System and apparatus having an application programming interface for flexible control of execution ultrasound actions
DE102013001143A1 (de) * 2013-01-23 2014-07-24 Giesecke & Devrient Gmbh Verfahren zur Ausvührung eines Programms über einen Mikroprozessor auf einem Sicherheitsmodul
JP5892083B2 (ja) * 2013-02-12 2016-03-23 日本電気株式会社 パラメータ設定装置、パラメータ設定プログラム及びパラメータ設定方法
US9823719B2 (en) * 2013-05-31 2017-11-21 Intel Corporation Controlling power delivery to a processor via a bypass
US9256276B2 (en) 2013-09-27 2016-02-09 Intel Corporation Utilization of processor capacity at low operating frequencies
WO2015065349A1 (en) * 2013-10-30 2015-05-07 Intel Corporation A method, apparatus and system for measuring latency in a physical unit of a circuit
US9345083B2 (en) * 2013-10-30 2016-05-17 Apple Inc. Boost converter with a pulse frequency modulation mode for operating above an audible frequency
TWI497314B (zh) * 2013-11-06 2015-08-21 Univ Nat Chiao Tung 適應性計算之無線處理器
JP6381899B2 (ja) * 2013-12-05 2018-08-29 ルネサスエレクトロニクス株式会社 半導体装置の設計方法、設計支援プログラム、設計装置、及び、半導体装置
US10200951B2 (en) * 2014-02-20 2019-02-05 Qualcomm Incorporated Low power low latency protocol for data exchange
KR102320399B1 (ko) * 2014-08-26 2021-11-03 삼성전자주식회사 전원 관리 칩, 그것을 포함하는 모바일 장치 및 그것의 클록 조절 방법
US9841795B2 (en) 2014-09-22 2017-12-12 Nxp Usa, Inc. Method for resetting an electronic device having independent device domains
KR102271469B1 (ko) 2014-10-24 2021-06-30 삼성전자주식회사 반도체 장치 및 이를 포함하는 반도체 시스템
CN104699578B (zh) * 2015-01-09 2017-12-26 同济大学 一种以内升温方式检测时延故障的定温指令级自测试方法
US9450582B2 (en) 2015-02-03 2016-09-20 Freescale Semiconductor, Inc. Programmable buffer system
US9696782B2 (en) 2015-02-09 2017-07-04 Microsoft Technology Licensing, Llc Battery parameter-based power management for suppressing power spikes
US10158148B2 (en) 2015-02-18 2018-12-18 Microsoft Technology Licensing, Llc Dynamically changing internal state of a battery
US9748765B2 (en) 2015-02-26 2017-08-29 Microsoft Technology Licensing, Llc Load allocation for multi-battery devices
JP6466740B2 (ja) * 2015-03-02 2019-02-06 株式会社メガチップス クロック生成回路
WO2016164543A1 (en) 2015-04-07 2016-10-13 Analog Devices, Inc. Quality factor estimation for resonators
US10432337B2 (en) * 2015-05-15 2019-10-01 Avago Technologies International Sales Pte. Limited Apparatus and method for timestamping of data packets
CN104881529B (zh) * 2015-05-18 2018-05-29 南京航空航天大学 基于有限状态机的采样保持控制策略的实现方法
US10210919B2 (en) 2015-06-03 2019-02-19 Altera Corporation Integrated circuits with embedded double-clocked components
US9503067B1 (en) * 2015-06-22 2016-11-22 Realtek Semiconductor Corporation Time shifter and method thereof
US9874863B2 (en) * 2015-08-24 2018-01-23 Keysight Technologies, Inc. Finite state machine-based trigger event detection employing interpolation
US9939862B2 (en) 2015-11-13 2018-04-10 Microsoft Technology Licensing, Llc Latency-based energy storage device selection
US10061366B2 (en) 2015-11-17 2018-08-28 Microsoft Technology Licensing, Llc Schedule-based energy storage device selection
US9793570B2 (en) 2015-12-04 2017-10-17 Microsoft Technology Licensing, Llc Shared electrode battery
CN105608027B (zh) * 2015-12-18 2018-10-19 华为技术有限公司 非易失存储设备和访问非易失存储设备的方法
US10248155B2 (en) 2016-01-25 2019-04-02 Samsung Electronics Co., Ltd. Semiconductor device including clock generating circuit and channel management circuit
US10296066B2 (en) 2016-01-25 2019-05-21 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system, and method of operating the semiconductor device
KR102467172B1 (ko) 2016-01-25 2022-11-14 삼성전자주식회사 반도체 장치
US10209734B2 (en) 2016-01-25 2019-02-19 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system, and method of operating the semiconductor device
DE102017110823A1 (de) 2016-01-25 2018-07-26 Samsung Electronics Co., Ltd. Halbleitervorrichtung, Halbleitersystem und Verfahren zum Betreiben der Halbleitervorrichtung
KR102474620B1 (ko) * 2016-01-25 2022-12-05 삼성전자주식회사 반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법
US10303203B2 (en) 2016-01-25 2019-05-28 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system and method for operating semiconductor device
JP2017191564A (ja) * 2016-04-15 2017-10-19 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US10445099B2 (en) * 2016-04-19 2019-10-15 Xiaolin Wang Reconfigurable microprocessor hardware architecture
KR20170124017A (ko) * 2016-04-29 2017-11-09 삼성전자주식회사 동작 전압을 조절하는 메모리 장치, 메모리 장치를 제어하는 어플리케이션 프로세서 및 메모리 장치의 동작방법
US10935949B2 (en) * 2016-05-17 2021-03-02 Mitsubishi Electric Corporation Controller system
US10254782B2 (en) * 2016-08-30 2019-04-09 Micron Technology, Inc. Apparatuses for reducing clock path power consumption in low power dynamic random access memory
US10305495B2 (en) * 2016-10-06 2019-05-28 Analog Devices, Inc. Phase control of clock signal based on feedback
US10659063B2 (en) * 2016-11-01 2020-05-19 Nvidia Corporation Adaptive voltage frequency scaling for optimal power efficiency
JP2018120449A (ja) * 2017-01-26 2018-08-02 ソニーセミコンダクタソリューションズ株式会社 演算処理装置および情報処理システム
JP6819327B2 (ja) * 2017-02-03 2021-01-27 富士通株式会社 クロック生成回路、シリアル・パラレル変換回路及び情報処理装置
TW201838392A (zh) * 2017-02-10 2018-10-16 香港商凱歐斯科技(香港)有限公司 功能型手機及其操作方法
US10120819B2 (en) * 2017-03-20 2018-11-06 Nxp Usa, Inc. System and method for cache memory line fill using interrupt indication
KR102435034B1 (ko) * 2017-06-21 2022-08-23 삼성전자주식회사 디지털 위상 고정 루프 및 디지털 위상 고정 루프의 동작 방법
US10809790B2 (en) * 2017-06-30 2020-10-20 Intel Corporation Dynamic voltage-level clock tuning
US10578435B2 (en) 2018-01-12 2020-03-03 Analog Devices, Inc. Quality factor compensation in microelectromechanical system (MEMS) gyroscopes
US11360504B2 (en) * 2018-05-25 2022-06-14 Advanced Micro Devices, Inc. Adaptable voltage margin for a processor
EP3806336A4 (de) 2018-06-05 2021-08-04 Panasonic Intellectual Property Management Co., Ltd. Eingangs-/ausgangsschaltung
GB201810478D0 (en) * 2018-06-26 2018-08-08 Nordic Semiconductor Asa Precision timing between systems
US11041722B2 (en) 2018-07-23 2021-06-22 Analog Devices, Inc. Systems and methods for sensing angular motion in the presence of low-frequency noise
CN111435267A (zh) * 2019-01-15 2020-07-21 海信集团有限公司 功耗自动调整的方法、装置、设备及计算机可读存储介质
CN109787625B (zh) * 2019-03-05 2022-04-05 上海芷锐电子科技有限公司 一种基于双pll的系统超频引起的电压毛刺保护系统
IT201900006633A1 (it) * 2019-05-08 2020-11-08 Stmicroelectronics Application Gmbh Sistema di elaborazione, relativo circuito integrato, dispositivo e procedimento
CN110081933B (zh) * 2019-05-10 2021-07-20 上海岚盒信息技术有限公司 振动巡检仪及其低功耗频域变换方法、计算机可读存储介质
CN110413558A (zh) * 2019-07-15 2019-11-05 广芯微电子(广州)股份有限公司 一种实现低功耗串口模块动态分频方法
KR20210062499A (ko) * 2019-11-21 2021-05-31 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
CN112104537B (zh) * 2020-03-28 2022-04-19 上海芯郡电子科技有限公司 一种通信控制器
KR102414817B1 (ko) * 2020-05-25 2022-06-30 윈본드 일렉트로닉스 코포레이션 지연 락 루프 디바이스와 그 동작 방법
US11455264B2 (en) * 2020-08-10 2022-09-27 International Business Machines Corporation Minimizing delay while migrating direct memory access (DMA) mapped pages
US11656876B2 (en) * 2020-10-29 2023-05-23 Cadence Design Systems, Inc. Removal of dependent instructions from an execution pipeline
TWI749960B (zh) * 2020-12-23 2021-12-11 瑞昱半導體股份有限公司 資料處理裝置與其資料存取電路
KR102392119B1 (ko) * 2021-07-21 2022-04-27 중앙대학교 산학협력단 위상 회전자를 이용한 분수 서브 샘플링 위상 고정 루프
US11853237B2 (en) * 2021-11-19 2023-12-26 Micron Technology, Inc. Input/output sequencer instruction set processing
US20230378962A1 (en) * 2022-05-20 2023-11-23 Apple Inc. Clock Frequency Limiter

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3680050A (en) * 1970-07-10 1972-07-25 Gen Electric Serial digital pulse phase interface driver and receiver
US4110708A (en) * 1977-03-25 1978-08-29 Harris Corporation Multichannel modulation system including automatic gain shifter
GB2031676B (en) * 1978-09-02 1983-05-11 Marconi Instruments Ltd Frequency modulation systems
CH620087B (de) * 1979-03-09 Suisse Horlogerie Oszillator mit einem hochfrequenz-quarzresonator.
JPS5837737B2 (ja) 1979-11-05 1983-08-18 株式会社日立国際電気 デイジタル符号の伝送方式
JPS61287335A (ja) 1985-06-13 1986-12-17 Toshiba Corp パリテイ−生成回路
JPS63126018A (ja) * 1986-11-17 1988-05-30 Hitachi Ltd 半導体集積回路
US6760866B2 (en) * 1987-06-02 2004-07-06 Texas Instruments Incorporated Process of operating a processor with domains and clocks
US5535331A (en) * 1987-09-04 1996-07-09 Texas Instruments Incorporated Processor condition sensing circuits, systems and methods
JP2668898B2 (ja) * 1987-11-06 1997-10-27 富士通株式会社 バス制御回路
KR960003412B1 (ko) 1989-06-30 1996-03-13 포퀘트 컴퓨터 코오포레이션 컴퓨터 전력 관리 시스템
GB2237157A (en) 1989-10-20 1991-04-24 Marconi Instruments Ltd Control of frequency modulators
US5038117A (en) * 1990-01-23 1991-08-06 Hewlett-Packard Company Multiple-modulator fractional-N divider
US6693951B1 (en) * 1990-06-25 2004-02-17 Qualcomm Incorporated System and method for generating signal waveforms in a CDMA cellular telephone system
US5159205A (en) * 1990-10-24 1992-10-27 Burr-Brown Corporation Timing generator circuit including adjustable tapped delay line within phase lock loop to control timing of signals in the tapped delay line
JPH05119876A (ja) * 1991-10-25 1993-05-18 Toshiba Corp 電子装置及びその装置に含まれる集積回路
EP0545581B1 (de) * 1991-12-06 1999-04-21 National Semiconductor Corporation Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul
FI95980C (fi) * 1992-09-04 1996-04-10 Nokia Mobile Phones Ltd Menetelmä ja kytkentäjärjestely ajan mittaamiseksi tarkasti epätarkalla kellolla
JPH06139373A (ja) * 1992-10-27 1994-05-20 Hitachi Ltd 半導体装置
EP0632360A1 (de) * 1993-06-29 1995-01-04 Xerox Corporation Rechnerleistungsverbrauchsreduzierung durch dynamische Spannungs- und Frequenzänderung
US5553276A (en) * 1993-06-30 1996-09-03 International Business Machines Corporation Self-time processor with dynamic clock generator having plurality of tracking elements for outputting sequencing signals to functional units
JPH0744266A (ja) * 1993-08-04 1995-02-14 Canon Inc デバイス制御装置
JP3490131B2 (ja) * 1994-01-21 2004-01-26 株式会社ルネサステクノロジ データ転送制御方法、データプロセッサ及びデータ処理システム
EP0665502B1 (de) * 1994-01-27 2002-06-12 Sun Microsystems, Inc. Asynchrone serielle kommunickationsschaltung
EP0666529B1 (de) * 1994-02-02 2004-10-06 Advanced Micro Devices, Inc. Leistungssteuerung in einem asynchronen Sender/Empfänger
JP3718251B2 (ja) * 1994-02-28 2005-11-24 株式会社ルネサステクノロジ データ処理装置
US5696917A (en) * 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5592173A (en) 1994-07-18 1997-01-07 Trimble Navigation, Ltd GPS receiver having a low power standby mode
JPH08152945A (ja) * 1994-11-28 1996-06-11 Nec Corp 消費電力管理装置
JPH08166834A (ja) * 1994-12-14 1996-06-25 Mitsubishi Electric Corp クロック発生回路及びマイクロコンピュータ
CN1316368C (zh) * 1994-12-28 2007-05-16 株式会社东芝 微处理器
US5842037A (en) 1995-03-20 1998-11-24 Telefonaktiebolaget Lm Ericsson Interference reduction in TDM-communication/computing devices
US5655100A (en) * 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US5737547A (en) * 1995-06-07 1998-04-07 Microunity Systems Engineering, Inc. System for placing entries of an outstanding processor request into a free pool after the request is accepted by a corresponding peripheral device
US5613235A (en) * 1995-06-29 1997-03-18 Nokia Mobile Phones Limited Operation of a radiotelephone in a synchronous extended standby mode for conserving battery power
US5774701A (en) * 1995-07-10 1998-06-30 Hitachi, Ltd. Microprocessor operating at high and low clok frequencies
JPH0944277A (ja) * 1995-07-25 1997-02-14 Mitsubishi Electric Corp マイクロコンピュータ
US5964893A (en) 1995-08-30 1999-10-12 Motorola, Inc. Data processing system for performing a trace function and method therefor
JP3466793B2 (ja) * 1995-09-28 2003-11-17 株式会社東芝 マルチプロセッサシステム
US5623234A (en) 1996-03-04 1997-04-22 Motorola Clock system
US5724505A (en) * 1996-05-15 1998-03-03 Lucent Technologies Inc. Apparatus and method for real-time program monitoring via a serial interface
US5809091A (en) * 1996-06-04 1998-09-15 Ericsson, Inc. Timing signal generator for digital communication system
US5933627A (en) * 1996-07-01 1999-08-03 Sun Microsystems Thread switch on blocked load or store using instruction thread field
US5790817A (en) * 1996-09-25 1998-08-04 Advanced Micro Devices, Inc. Configurable digital wireless and wired communications system architecture for implementing baseband functionality
WO1998019242A1 (fr) * 1996-10-30 1998-05-07 Hitachi, Ltd. Processeur de donnees et systeme de traitement de donnees
JPH10187300A (ja) * 1996-12-20 1998-07-14 Sony Corp 電源制御回路および電源制御方法
JPH10190568A (ja) * 1996-12-27 1998-07-21 Matsushita Electric Ind Co Ltd 無線受信装置
DE69826539D1 (de) * 1997-01-30 2004-11-04 Sgs Thomson Microelectronics Cachespeichersystem
US6029061A (en) * 1997-03-11 2000-02-22 Lucent Technologies Inc. Power saving scheme for a digital wireless communications terminal
US6031429A (en) * 1997-03-19 2000-02-29 Silicon Magic Corporation Circuit and method for reducing lock-in time in phase-locked and delay-locked loops
US6269426B1 (en) * 1997-06-24 2001-07-31 Sun Microsystems, Inc. Method for operating a non-blocking hierarchical cache throttle
US6052777A (en) * 1997-06-25 2000-04-18 Sun Microsystems, Inc. Method for delivering precise traps and interrupts in an out-of-order processor
US5963068A (en) * 1997-07-28 1999-10-05 Motorola Inc. Fast start-up processor clock generation method and system
US6170051B1 (en) * 1997-08-01 2001-01-02 Micron Technology, Inc. Apparatus and method for program level parallelism in a VLIW processor
US6005904A (en) * 1997-10-16 1999-12-21 Oasis Design, Inc. Phase-locked loop with protected output during instances when the phase-locked loop is unlocked
US6076157A (en) * 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US5936565A (en) * 1997-12-10 1999-08-10 Nortel Networks Corporation Digitally controlled duty cycle integration
US6282184B1 (en) * 1997-12-22 2001-08-28 Nortel Networks Limited Common digitizing rate for multiple air interfaces for generic cell sites in cellular radio
EP0924947A1 (de) * 1997-12-22 1999-06-23 The Technology Partnership Public Limited Company Verfahren zur Energieeinsparung für Endgerät eines digitalen zellularen Systems
US6430654B1 (en) * 1998-01-21 2002-08-06 Sun Microsystems, Inc. Apparatus and method for distributed non-blocking multi-level cache
EP0939495B1 (de) * 1998-02-26 2004-04-14 Motorola Semiconducteurs S.A. Energiesparanordnung für ein elektronisches tragbares Gerät
US6145122A (en) * 1998-04-27 2000-11-07 Motorola, Inc. Development interface for a data processor
JPH11312026A (ja) * 1998-04-28 1999-11-09 Nec Corp クロック信号切替方法およびクロック信号切替システム
JP4060442B2 (ja) * 1998-05-28 2008-03-12 富士通株式会社 メモリデバイス
JP3786521B2 (ja) * 1998-07-01 2006-06-14 株式会社日立製作所 半導体集積回路及びデータ処理システム
JP3857052B2 (ja) * 1998-07-02 2006-12-13 株式会社ルネサステクノロジ マイクロプロセッサ
US6141762A (en) 1998-08-03 2000-10-31 Nicol; Christopher J. Power reduction in a multiprocessor digital signal processor based on processor load
KR100306966B1 (ko) * 1998-08-04 2001-11-30 윤종용 동기형버스트반도체메모리장치
EP0992907B1 (de) * 1998-10-06 2005-09-28 Texas Instruments Inc. Verwaltung eines FIFO zur Abalufverfolgung
EP0992906B1 (de) * 1998-10-06 2005-08-03 Texas Instruments Inc. Vorrichtung und Verfahren für einen Software-Haltepunkt während eines Verzögerungsschlitzes
US6255822B1 (en) * 1998-10-09 2001-07-03 U.S. Philips Corporation MRI apparatus having a short uniform field magnet with an internal space
US6118306A (en) 1998-12-03 2000-09-12 Intel Corporation Changing clock frequency
US6763448B1 (en) * 1999-02-16 2004-07-13 Renesas Technology Corp. Microcomputer and microcomputer system
FI106761B (fi) * 1999-02-19 2001-03-30 Nokia Mobile Phones Ltd Menetelmä ja piirijärjestely järjestelmien keskinäisen tahdistuksen toteuttamiseksi monimoodilaitteessa
US6336168B1 (en) * 1999-02-26 2002-01-01 International Business Machines Corporation System and method for merging multiple outstanding load miss instructions
FR2791217B1 (fr) * 1999-03-18 2001-06-01 Sagem Procede de veille dans un telephone mobile
US6425086B1 (en) * 1999-04-30 2002-07-23 Intel Corporation Method and apparatus for dynamic power control of a low power processor
US6341347B1 (en) * 1999-05-11 2002-01-22 Sun Microsystems, Inc. Thread switch logic in a multiple-thread processor
WO2000068783A2 (en) 1999-05-12 2000-11-16 Analog Devices, Inc. Digital signal processor computation core
JP2001022480A (ja) * 1999-07-09 2001-01-26 Seiko Epson Corp 情報処理装置
JP2001036958A (ja) * 1999-07-16 2001-02-09 Nec Corp 待受け受信方式
CN100353349C (zh) 1999-11-05 2007-12-05 模拟装置公司 通讯处理器的总线结构和共享总线判优方法
US6748475B1 (en) * 1999-11-05 2004-06-08 Analog Devices, Inc. Programmable serial port architecture and system
EP1103978B1 (de) * 1999-11-25 2009-01-28 STMicroelectronics S.r.l. Nichtflüchtiger Speicher mit Burstlesebetrieb sowie entsprechendes Leseverfahren
EP1103977B1 (de) * 1999-11-25 2009-02-25 STMicroelectronics S.r.l. Leseverfahren für nichtflüchtige Speicheranordnung mit automatischer Erkennung eines Burstlesebetriebs sowie entsprechende Leseschaltung
US6205084B1 (en) * 1999-12-20 2001-03-20 Fujitsu Limited Burst mode flash memory
GB2357602A (en) * 1999-12-22 2001-06-27 Nokia Mobile Phones Ltd Memory controller for a memory array comprising different memory types
US6625740B1 (en) * 2000-01-13 2003-09-23 Cirrus Logic, Inc. Dynamically activating and deactivating selected circuit blocks of a data processing integrated circuit during execution of instructions according to power code bits appended to selected instructions
US6873268B2 (en) 2000-01-21 2005-03-29 Medtronic Minimed, Inc. Microprocessor controlled ambulatory medical apparatus with hand held communication device
US7143401B2 (en) * 2000-02-17 2006-11-28 Elbrus International Single-chip multiprocessor with cycle-precise program scheduling of parallel execution
DE10009683A1 (de) * 2000-02-29 2001-08-30 Nokia Mobile Phones Ltd Verfahren zum Unterbrechen eines Ruhezustandes einer Kommunikationseinheit in einem Kommunikationssystem, insbesondere in einem Funk-Kommunikationssystem
US6421214B1 (en) * 2000-03-03 2002-07-16 Pass & Seymour, Inc. Arc fault or ground fault detector with self-test feature
JP2001313547A (ja) * 2000-05-01 2001-11-09 Mitsubishi Electric Corp 内部回路へのクロック供給方法およびクロック供給回路
EP1182559B1 (de) * 2000-08-21 2009-01-21 Texas Instruments Incorporated Mikroprozessor
JP2002082832A (ja) * 2000-09-08 2002-03-22 Nec Corp キャッシュ更新方法及びキャッシュ更新制御システム並びに記録媒体
US6636225B2 (en) * 2000-11-20 2003-10-21 Hewlett-Packard Development Company, L.P. Managing texture mapping data in a computer graphics system
US6871292B1 (en) 2000-11-20 2005-03-22 Intersil Americas, Inc. Sequencer and method of selectively inhibiting clock signals to execute reduced instruction sequences in a re-programmable I/O interface
US6732236B2 (en) * 2000-12-18 2004-05-04 Redback Networks Inc. Cache retry request queue
SE516758C2 (sv) * 2000-12-22 2002-02-26 Ericsson Telefon Ab L M Digitalt bussystem
US6665776B2 (en) * 2001-01-04 2003-12-16 Hewlett-Packard Development Company L.P. Apparatus and method for speculative prefetching after data cache misses
US6584546B2 (en) * 2001-01-16 2003-06-24 Gautam Nag Kavipurapu Highly efficient design of storage array for use in first and second cache spaces and memory subsystems
US20020138778A1 (en) * 2001-03-22 2002-09-26 Cole James R. Controlling CPU core voltage to reduce power consumption
US6968219B2 (en) * 2001-08-15 2005-11-22 Qualcomm, Incorporated Method for reducing power consumption in bluetooth and CDMA modes of operation
JP4170218B2 (ja) 2001-08-29 2008-10-22 メディアテック インコーポレーテッド キャッシュミスに応答してタスクを切り替えることによってキャッシュベース埋め込みプロセッサのスループットを改善する方法および装置
US6865503B2 (en) * 2002-12-24 2005-03-08 Conexant Systems, Inc. Method and apparatus for telemetered probing of integrated circuit operation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011122074A1 (de) 2010-12-20 2012-06-21 Dmos Gmbh Bussystem zur Kommunikation und Stromversorgung von Teilnehmerschaltungen und Verfahren zur Reduzierung des Energieverbrauchs in Baugruppen von Bussystemen

Also Published As

Publication number Publication date
CN1549976A (zh) 2004-11-24
CN1549971A (zh) 2004-11-24
DE60223555T2 (de) 2009-06-10
CN100517215C (zh) 2009-07-22
EP1421465A2 (de) 2004-05-26
US20030149809A1 (en) 2003-08-07
US20030126487A1 (en) 2003-07-03
US20080077820A1 (en) 2008-03-27
CN1550070A (zh) 2004-11-24
US20080077770A1 (en) 2008-03-27
CN101673238B (zh) 2012-02-15
JP2005502241A (ja) 2005-01-20
JP2005502259A (ja) 2005-01-20
JP2005502126A (ja) 2005-01-20
JP2005502123A (ja) 2005-01-20
US20030070051A1 (en) 2003-04-10
DE60223051D1 (de) 2007-11-29
JP4170218B2 (ja) 2008-10-22
CN100570577C (zh) 2009-12-16
WO2003021446A2 (en) 2003-03-13
WO2003021600A3 (en) 2003-10-23
US20030071657A1 (en) 2003-04-17
CN1549960A (zh) 2004-11-24
WO2003021439A1 (en) 2003-03-13
CN100451914C (zh) 2009-01-14
EP1421588B1 (de) 2012-01-18
EP1421465B1 (de) 2008-08-13
DE60211921D1 (de) 2006-07-06
US7159134B2 (en) 2007-01-02
JP4338514B2 (ja) 2009-10-07
US7174543B2 (en) 2007-02-06
WO2003021446A3 (en) 2003-06-19
EP1421490B1 (de) 2006-04-12
DE60228268D1 (de) 2008-09-25
AU2002331774A1 (en) 2003-03-18
EP1499955A2 (de) 2005-01-26
DE60239347D1 (de) 2011-04-14
WO2003021600A2 (en) 2003-03-13
CN1550016A (zh) 2004-11-24
US20030058052A1 (en) 2003-03-27
AU2002327599A1 (en) 2003-03-18
CN1547701A (zh) 2004-11-17
CN1299201C (zh) 2007-02-07
DE60210633T2 (de) 2007-04-05
WO2003021426A3 (en) 2004-10-28
WO2003021800A1 (en) 2003-03-13
WO2003021426A2 (en) 2003-03-13
EP1425671A2 (de) 2004-06-09
CN100399472C (zh) 2008-07-02
JP2005502144A (ja) 2005-01-20
CN100361109C (zh) 2008-01-09
EP2230603A3 (de) 2012-08-01
EP1421704B1 (de) 2007-11-14
US7698590B2 (en) 2010-04-13
US7114093B2 (en) 2006-09-26
EP1499955B1 (de) 2016-07-20
WO2003021407A1 (en) 2003-03-13
CN1549961A (zh) 2004-11-24
CN1620645A (zh) 2005-05-25
EP1421588A2 (de) 2004-05-26
US6889331B2 (en) 2005-05-03
EP1421490A1 (de) 2004-05-26
US20030117176A1 (en) 2003-06-26
JP2005502120A (ja) 2005-01-20
CN1549961B (zh) 2010-04-14
US20030061445A1 (en) 2003-03-27
JP2005502114A (ja) 2005-01-20
US6768358B2 (en) 2004-07-27
US6978350B2 (en) 2005-12-20
EP1421497B1 (de) 2011-03-02
JP2005510779A (ja) 2005-04-21
JP3852703B2 (ja) 2006-12-06
DE60223051T2 (de) 2008-07-24
CN100471079C (zh) 2009-03-18
WO2003021409A2 (en) 2003-03-13
JP2007006505A (ja) 2007-01-11
EP2230603A2 (de) 2010-09-22
JP4340536B2 (ja) 2009-10-07
US20030051231A1 (en) 2003-03-13
EP1425671B1 (de) 2006-05-31
EP1421463A1 (de) 2004-05-26
DE60223555D1 (de) 2007-12-27
JP4799819B2 (ja) 2011-10-26
US8156366B2 (en) 2012-04-10
JP4243186B2 (ja) 2009-03-25
WO2003021426A9 (en) 2004-05-06
EP2230603B1 (de) 2014-03-05
DE60210633D1 (de) 2006-05-24
EP1421463B1 (de) 2007-10-17
WO2003021453A2 (en) 2003-03-13
CN101673238A (zh) 2010-03-17
WO2003021453A3 (en) 2004-03-18
US7315956B2 (en) 2008-01-01
JP4440900B2 (ja) 2010-03-24
JP2009064456A (ja) 2009-03-26
US7007132B2 (en) 2006-02-28
EP1421497A2 (de) 2004-05-26
EP1421704A1 (de) 2004-05-26
WO2003021409A3 (en) 2003-09-25

Similar Documents

Publication Publication Date Title
DE60211921T2 (de) Architektur und system von einem generischen seriellen port
DE4235005C2 (de) Mikroprozessor
DE4305442C2 (de) Verfahren und Vorrichtung zum Erzeugen eines Testvektors
DE69233510T2 (de) Ausgangspuffer für Mikroprozessor
DE3300261C2 (de)
DE19858650A1 (de) Gerät und Verfahren zum Reduzieren des Energieverbrauchs in einem selbstgetakteten System
DE19983138B4 (de) Verfahren und Vorrichtung zum Verändern einer Taktfrequenz auf einer Phase-zu-Phase-Basis
EP1222739A1 (de) Rekonfigurierbares gate-array
DE2654050B2 (de) Taktsignalsteuersystem eines Mikrocomputersystems
DE2912440A1 (de) Taktsignalgenerator
DE2556624C2 (de) Verfahren und Schaltungsanordnung zur asynchronen Datenübertragung
DE60226141T2 (de) Fifo-speicher system und verfahren dafür
DE3400723C2 (de)
DE19852457C2 (de) Verfahren und Vorrichtung zur Phasendrehung in einem Phasenregelkreis
DE3344141T1 (de) Sortiervorrichtung
DE2544945A1 (de) Mikroprocessor
DE10122481B4 (de) Schaltung zur wahlweisen Erzeugung eines Ausgangssignals aus einem von mehreren Taktsignalen
DE4306463C2 (de) System zur Erzeugung von Datensignalen zur Anlegung an ein in Prüfung befindliches Gerät mit unabhängig voneinander einstellbaren steigenden und fallenden Flanken
DE3725821A1 (de) Integrierte halbleiterschaltvorrichtung mit prueffunktion
DE69233345T2 (de) Ein-Chip-Mikrocomputer mit zwei Zeitgeberfunktionsarten
EP0350039B1 (de) Zähler-/Zeitgeber-Schaltung für einen Microcontroller
DE10018988B4 (de) Hochgeschwindigkeits-Pipelinevorrichtung und Verfahren zum Erzeugen von Steuersignalen dafür
DE2759120A1 (de) Prozessor fuer datenverarbeitungssysteme
DE19650341C2 (de) A/D-Wandlervorrichtung
DE10110567B4 (de) Datenverarbeitungssystem mit einstellbaren Takten für unterteilte synchrone Schnittstellen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: MEDIATEK INC., HSINCHU, TW