DE102014111305A1 - A processor model that uses a single large linear register, FIFO-based I / O ports supporting new interface signals, and interrupt bus transfers that eliminate DMA, bridges, and an external I / O bus - Google Patents

A processor model that uses a single large linear register, FIFO-based I / O ports supporting new interface signals, and interrupt bus transfers that eliminate DMA, bridges, and an external I / O bus Download PDF

Info

Publication number
DE102014111305A1
DE102014111305A1 DE102014111305.5A DE102014111305A DE102014111305A1 DE 102014111305 A1 DE102014111305 A1 DE 102014111305A1 DE 102014111305 A DE102014111305 A DE 102014111305A DE 102014111305 A1 DE102014111305 A1 DE 102014111305A1
Authority
DE
Germany
Prior art keywords
cpu
interrupt
registers
bit
signals
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102014111305.5A
Other languages
German (de)
Other versions
DE102014111305A8 (en
Inventor
Adam Bin Baharum
Muhammad Nasir Bin Ibrahim
Namazi Bin Azhari
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.)
Universiti Teknologi Malaysia (UTM)
Original Assignee
Universiti Teknologi Malaysia (UTM)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universiti Teknologi Malaysia (UTM) filed Critical Universiti Teknologi Malaysia (UTM)
Priority to DE102014111305.5A priority Critical patent/DE102014111305A1/en
Publication of DE102014111305A1 publication Critical patent/DE102014111305A1/en
Publication of DE102014111305A8 publication Critical patent/DE102014111305A8/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers

Abstract

Ein Prozessor oder eine CPU-Architektur, der oder die viele befähigende Technologien implementiert, die sich bewährt haben, um einen Datendurchsatz, die synchrone Bitbündeldatenübertragung unterstützend, zu steigern. Die Eingabe-Ausgabe (E/A) wird einheitlich betrachtet und als individuelle Zuerst-hinein-zuerst-hinaus-(FIFO-; FIFO = First-In-First-Out)Vorrichtung behandelt. Eine Mehrzahl von Speicherbereichen ist für einen Benutzerstapel, Kernstapel, Unterbrechungsstapel und Prozeduraufrufstapel implementiert. Lediglich ein E/A-Zuteiler ist für ein CPU-Modell notwendig, der zwischen einer Mehrzahl von FIFO zuteilt, wobei eine Implementierung auf einem Chip durch Daten-Caches ausgetauscht wird, sodass herkömmliche Datenübertragungsverfahren unter Verwendung eines direkten Speicherzugriffs (DMA; DMA = Direct-Memory-Access) eliminiert werden, wobei Bussteuer- und Verriegelungssignale lediglich die Unterbrechungssignale und die neuen synchronen Signale für einen leichten und stromlinienförmig gestalteten Systementwurf und ein CPU-Modell hinterlassen. Durch ein Unterstützen einer unterbrechungsgetriebenen FIFO-basierten E/A und einer synchronen Bitbündeldatenübertragung verwendet die CPU einfache lineare große Registersätze ohne ein Bankumschalten.A processor or CPU architecture that implements many enabling technologies that have proven to enhance data throughput, supporting synchronous burst data transmission. The input-output (I / O) is considered uniform and treated as an individual-first-in-first-out (FIFO) device. A plurality of storage areas are implemented for a user stack, core stacks, interrupt stacks, and procedure call stacks. Only one I / O arbiter is necessary for a CPU model that allocates between a plurality of FIFOs, and an implementation on a chip is replaced by data caches, so that conventional data transfer methods using direct memory access (DMA) can be used Memory access), with bus control and latch signals leaving only the interrupt signals and the new synchronous signals for a lightweight and streamlined system design and CPU model. By supporting interrupt driven FIFO based I / O and synchronous burst data transfer, the CPU uses simple linear large register sets without bank switching.

Description

TECHNISCHES GEBIETTECHNICAL AREA

Diese Erfindung bezieht sich auf eine Mikroprozessor- und Computerarchitektur.This invention relates to a microprocessor and computer architecture.

HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION

Geschichte der CPU-ArchitekturHistory of the CPU architecture

Viele aktuelle Prozessor- oder CPU-Architekturen lehnen sich an dem IBM 360 (1964 bekannt gegeben) an, der beide Charakteristiken von CISC- und RISC-Entwürfen hatte. Der Entwurf hat bereits Multiverarbeitungserfordernisse mit spezifischen Anweisungen in Betracht gezogen, wie man es sich für die Geschäfts- und wissenschaftlichen Rechenbedürfnisse vorgestellt hat. Die meisten CPU-Entwürfe wurden für eine erwartete Verwendung um die alltägliche Betriebssystem-(OS-; OS = Operating System)Software herum ausgedacht, die meistens gesetzlich geschützt war. Bis zu diesem Punkt wurde ein Computer aus diskreten Logikgattern hergestellt, was darin resultiert hat, dass das ganze System ein paar äquivalente Zimmer in einem Haus eingenommen hat. Die Erfindung eines Prozessors, der eine diskrete Logik verwendet, ist bereits in dem US-Patent Nr. 3,401,376 , 1965 eingereicht durch G. H. Barnes et al., und das am 10. September 1968 erteilte Patent beschrieben. Siehe ebenfalls das US-Patent Nr. 3,518,632 , 1967 eingereicht durch R. Threadgold et al., das am 30. Juni 1970 zum Patent erteilt wurde.Many current processor or CPU architectures are based on the IBM 360 (announced in 1964), which had both characteristics of CISC and RISC designs. The design has already considered multi-processing requirements with specific instructions as it has been imagined for the business and scientific computing needs. Most CPU designs were devised for expected use around the OS (Operating System) software, which was mostly proprietary. Up to this point, a computer has been made up of discrete logic gates, which has resulted in the whole system occupying a few equivalent rooms in a house. The invention of a processor using discrete logic is already in the art U.S. Patent No. 3,401,376 , 1965 filed by GH Barnes et al., And the patent issued September 10, 1968. See also that U.S. Patent No. 3,518,632 , 1967 filed by R. Threadgold et al., Granted June 30, 1970 patent.

Es kann gesagt werden, dass die Geschichte der CPU 1961 beginnt, als Fairchild die ersten ICs vermarktet hat, nachdem sie und TI diese 1959 erfunden haben. In 1966 hat eine Patentanmeldung Nr. 3,462,742 durch Henry S. Miller et al. der RCA Corp., die 1969 zum Patent erteilt wurde, ein Prozessorsystem beschrieben, das aus vielen integrierten Schaltungen hergestellt ist, die einige 200 oder ähnlich Logikgatter enthalten. Dies war ein Weggang von vollständig diskreten Logikschaltungen.It can be said that the story of the CPU starts in 1961, when Fairchild marketed the first ICs after inventing them and TI in 1959. In 1966, a patent application No. 3,462,742 by Henry S. Miller et al. RCA Corp., which was granted a patent in 1969, describes a processor system made of many integrated circuits including some 200 or similar logic gates. This was a departure from fully discrete logic circuits.

Es wurde allgemein bald erkannt, dass, wenn für bestimmte Module, die den Prozessor bilden, anvisiert wird, dieselben in eine IC zu schrumpfen, es nur natürlich ist, anzunehmen, dass der nächste Schritt ist, alles in eine IC zu stecken, was dann der Mikroprozessor wird, diese Technologie war jedoch nicht realisierbar. 1971 erzeugte Intel den ersten Mikroprozessor, den Intel 4004, der in einer 16-Port-IC verpackt war und aus einem 4-Bit-Datenbus, 12-Bit-Adressbus, sechzehn 4-Bit-Registern, vier 12-Bit-Registern bestand und der bei einem Takt von 750 kHz lief. Dies war die einfachste von allen CPU, die die klassische Von-Neumann-Architektur in sich vereinigte, und war der Startpunkt für CPU-Architekturen.It has generally been recognized that if certain modules forming the processor are targeted to shrink into an IC, it is natural to assume that the next step is to put everything into an IC, and then what the microprocessor becomes, but this technology was not feasible. In 1971, Intel created the first microprocessor, the Intel 4004, which was packaged in a 16-port IC and consisted of a 4-bit data bus, 12-bit address bus, sixteen 4-bit registers, four 12-bit registers and ran at a clock of 750 kHz. This was the simplest of all CPUs, incorporating the classic Von Neumann architecture, and was the starting point for CPU architectures.

In den Siebzigern wurde Unix bei den Groß-(englisch: mainframe)Computern der Universitäten und der Unternehmenswelt verwendet. Und in den späten Siebzigern, als Personalcomputer für die Massen erschwinglich wurden, waren die Hauptbetriebssysteme das Einaufgabenbetriebssystem (englisch: single tasking) Apple-DOS und CP/M. Ein Mehraufgabenbetriebssystem (englisch: multitasking) für die Massen, das heißt, die IBM-PC-Klone in der Form von Unix-Versionen, wie das BSD-Unix von Berkeley und Xenix der Santa Cruz Operations, war nicht lange danach verfügbar, nachdem die IBM Corp. den IBM-PC 1981 und damit MSDOS, eine Einaufgabenbetriebsumgebung bis 1990, als Windows begann, Fuß zu fassen, eingeführt hat.In the 1970's, Unix was used in the mainframe computers of universities and the corporate world. And in the late 1970's, when personal computers became affordable to the masses, the main operating systems were the single-tasking Apple DOS and CP / M systems. A multitasking system for the masses, that is, the IBM PC clones in the form of Unix versions, such as Berkeley's BSD Unix and Santa Cruz Operations' Xenix, was not readily available after the IBM Corp. the IBM PC in 1981, and thus MSDOS, a single-tasking operating environment until 1990, when Windows began to take root.

1988 wurde ein tragbares Betriebssystem, die tragbare Betriebssystemschnittstelle für Unix (POSIX; POSIX = Portable-Operating-System-Interface-for-Unix), um einen Kern mit einheitlichen Funktionsaufrufen entwickelt, was ein konsistentes Verhalten von Prozessen, die zu allen Hochleistungs-CPU portiert werden können, beschreibt. Dies hat die verschiedenen Betriebssysteme im Kern und eine Anwendungsschnittstelle (API; API = Application-Interface), die die CPU-Architekturen beeinflusst hat, um dieselbe zu unterstützen, standardisiert.In 1988, a portable operating system, the Unix portable operating system interface (POSIX), was developed around a core with unified function calls, resulting in consistent behavior of processes common to all high-performance CPUs can be ported. This has standardized the various operating systems in the core and an application interface (API) that has influenced the CPU architectures to support the same.

Fast alle neuen populären CPU-Architekturen wurden Mitte der Achtziger (Intel Pentium und weiter stammten von dem alten 8086-Entwurf von 1978 ab) und Neunziger aus vertrauten CPU-Architekturen entwickelt, wie zum Beispiel ARM 1985, MIPS R2K 1986, Sun Sparc 1987, AMD 29K 1988, Intel i960 1988, der Motorola PowerPC 1992, DEC Alpha 1994 und Intel Itanium 2002.Almost all new popular CPU architectures were developed in the mid-eighties (Intel Pentium and further dated from the old 8086 draft of 1978) and nineties from familiar CPU architectures, such as ARM 1985, MIPS R2K 1986, Sun Sparc 1987, AMD 29K 1988, Intel i960 1988, the Motorola PowerPC 1992, DEC Alpha 1994 and Intel Itanium 2002.

Fast alle diese CPU hatten, außer ARM, i960 und AMD 29K, komplizierte Entwürfe. Spätere Architekturen waren sehr stark skalar, sehr stark fließbandverarbeitend (englisch: pipelined) mit einer Verzweigungsvorhersage und anderen komplexen Schemata, wobei dieselben am Ende Wertungen (englisch: benchmarks) erzeugt haben, die nicht wesentlich besser als dieselben des reinen Entwurfs dieser drei sind. Viele der Konzepte, wie zum Beispiel die drehenden Fenster (englisch: rotating windows) von Sun Sparc, erwiesen sich als Flaschenhals und als ineffizient. Ungünstigerweise hinterließen selbst diese drei viele gewünschte Charakteristiken, da dieselben erschienen bevor POSIX und insbesondere Linux geschaffen wurden.Almost all of these CPUs had complicated designs except ARM, i960, and AMD 29K. Later architectures were very strongly scalar, very pipelined with a branch prediction and other complex schemata, and in the end they produced benchmarks that are not much better than the ones of the pure design of these three. Many of the concepts, such as Sun Sparc's rotating windows, proved to be bottlenecks and inefficient. Unfortunately, even these three left many desirable characteristics as they appeared before POSIX and especially Linux were created.

Die Forderungen von Anwendungen in einer POSIX-Umgebung, wie zum Beispiel dem PC (= Personalcomputer) und einem eingebetteten System, eines Paketdatenflusses in Weiterleitungsvorrichtungen (englisch: routers) und einer Hinzufügung von Modulen erfordern, dass eine CPU-Leiterplatte einen DMA, Multibrücken, Multi-Zuteiler und einen E/A-Erweiterungsbus, wie zum Beispiel den PCI und Varianten desselben, verwendet. Es wird erwartet, dass die CPU diese herkömmlichen Komponenten mit dem entsprechend komplexen Schnittstellenschema aufweist.The demands of applications in a POSIX environment, such as the PC (= personal computer) and an embedded system, a packet data flow in routers and an addition of modules, require that a CPU board have a DMA, multibridge, Multi-allocators and an I / O Expansion bus, such as the PCI and variants thereof used. It is expected that the CPU will have these conventional components with the corresponding complex interface scheme.

Das Bedürfnis nach einer einfachen und dennoch leistungsfähigen CPU-Architektur in der POSIX-UmgebungThe need for a simple yet powerful CPU architecture in the POSIX environment

Einfach bedeutet bei dieser Erfindung, leicht zu lernen und leicht innerhalb einer POSIX-Schnittstelle zu implementieren, die eine leistungsfähige Computerumgebung beschreibt. Leicht zu lernen stammt von einer stromlinienförmig gestalteten (englisch: streamlined) Architektur, einem solchen Konzept und einem solchen Modell mit sehr wenig oder keinen Sonderfällen, jedoch eine, die CPU-Prozesse in der POSIX-Umgebung besser abbildet.Simple in this invention means easy to learn and easy to implement within a POSIX interface that describes a powerful computing environment. Easy to learn comes from a streamlined architecture, such a concept and model with very little or no special cases, but one that better maps CPU processes in the POSIX environment.

Ein Implementieren eines speziellen Systementwurfs, ob bei einem SOC (= System-On-Chip = System auf einem Chip) oder bei einer Leiterplatte, wird mit weniger komplexen Schnittstellensignalen leichter gemacht, was seinerseits in einer entsprechend einfacheren Trennung von Problemen bei der Störungssuche nach einer Fertigung resultiert. Eine Störungssuche bei einem System mit zwei Zuteilern und zwei Brücken ist beispielsweise wesentlich schwerer als bei einem System mit lediglich einem Zuteiler oder einer Brücke. Es sei die Komplexität des Kommunikationsprozessors, der bei vielen Spitzenroutern verwendet wird, dem IXP435 mit drei Busbrücken und drei Bus-Zuteilern, betrachtet. Die IA-32-(Intel i86)Architektur des PC mit der Nordbrücke (englisch: North bridge), Südbrücke (englisch: South bridge) und einem anderen Zuteilen-Brücken-Paar mit der PCI-Schnittstelle hat annähernd die gleiche Komplexität. Diese Erfindung einer alternativen CPU benötigt lediglich einen Zuteiler für alle Fälle, ohne überhaupt eine Brücke zu verwenden.Implementing a particular system design, whether in a system-on-chip (SOC) or circuit board, is made easier with less complex interface signals, which in turn results in a correspondingly easier separation of troubleshooting problems Production results. For example, troubleshooting a two-allocator and two-bridge system is significantly more difficult than a system having only one arbiter or one bridge. Consider the complexity of the communications processor used in many high-end routers, the IXP435 with three bus bridges and three bus arbiter. The IA-32 (Intel i86) architecture of the North Bridge, South Bridge, and another Dual Bridge pair with the PCI interface has nearly the same complexity. This invention of an alternative CPU requires only one dispatcher for all cases without even using a bridge at all.

Die meisten CPUs benötigen DMA-, Verriegelungs-(englisch: Lock) und Busanforderungssignale zu dem zugeordneten komplexen Unterstützungsprotokoll derselben, um Daten in Block-E/A-Vorrichtungen zu übertragen, obwohl das Gleiche durch lediglich Verwenden der allgemein verfügbaren und verstandenen Unterbrechungssignale besser erreicht werden kann. Am Ende erfordern diese Signale eine Unterbrechungseinrichtung, um richtig zu funktionieren, während das Gegenteil nicht wahr ist; eine Unterbrechungsalternative kann diese umgehen. Daher das starke Beruhen dieser Erfindung auf einer unterbrechungsgesteuerten bzw. -getriebenen Einrichtung.Most CPUs require DMA, Lock and Bus request signals to their associated complex support protocol to transfer data to block I / O devices, although the same can be better achieved by merely using the commonly available and understood interrupt signals can be. In the end, these signals require a breaker to work properly while the opposite is not true; an interruption alternative can bypass this. Therefore, relying heavily on this invention on an interrupt driven device.

Einem Reduzieren von komplexen Schnittstellensignalen muss eine andere einfache Sicht von E/A-Geräten bzw. -Vorrichtungen folgen, wenn alles auf eine Anzahl von FIFO reduziert werden kann und gleich behandelt werden kann. Mit lediglich einem Schlag wird es einfach, jede Peripherievorrichtung und jedes Gerät bzw. jede Vorrichtung, die eine Multiprozessorkern-CPU und eine parallele Arrayarchitektur aufweisen, zu verbinden.Reducing complex interface signals must be followed by another simple view of I / O devices or devices, if everything can be reduced to a number of FIFOs and treated equally. With a single stroke, it becomes easy to connect any peripheral device and any device that has a multiprocessor core CPU and a parallel array architecture.

Eine andere bemerkenswerte Einrichtung ist die einfache Vektor-ID, die ihre Ursprünge in den Beschreiber- bzw. Schlüsselwort-(englisch: descriptor)Tabellen des alten Burroughs-Computers der Siebziger hat, die sich für ein schnelles Unterbrechungsansprechen, einen schnellen Zugriff von Parametern in einem gegebenen Speicherrahmen und als eine effiziente Einrichtung zum Zugreifen auf PCB-(= Process-Control-Block = Prozesssteuerblock)Beschreiber als unschätzbar erwiesen hat.Another notable feature is the simple vector ID, which has its origins in the descriptor tables of the old Burroughs computer of the Seventy, which advocate fast interrupt response, fast access of parameters in Given a memory frame and as an efficient means for accessing PCB (= Process Control Block) descriptor has proved invaluable.

In Anbetracht des Vorhergehenden kann dies ohne eine effiziente Einrichtung einer Datenübertragung selbst nicht in einem hohen Rechendurchsatz resultieren. Dies wird mit synchronen Bitbündel-(englisch: burst)Datenübertragungen bei einer Blockspeicher-(Register-Speicher-)Übertragung sowie einer E/A über FIFO erreicht.In view of the foregoing, without an efficient means of data transmission itself, this can not result in high computational throughput. This is achieved with synchronous bursting (English: burst) data transfers in a block-memory (register-to-memory) transfer and I / O via FIFO.

Eine Kombination dieser bewährten Technologien, die durch den entsprechenden CPU-Anweisungssatz, der diese Fähigkeiten ermöglicht, unterstützt wird, wird in einer einfachen und leistungsfähigen CPU-Architektur resultieren.A combination of these proven technologies, supported by the appropriate CPU instruction set that enables these capabilities, will result in a simple and powerful CPU architecture.

KURZFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION

Diese Erfindung beschreibt ein CPU-Model, das einen Satz von Interface- bzw. Schnittstellensignalen verwendet, die eine unterbrechungsgetriebene bzw. -gesteuerte Verarbeitung einer FIFO-basierten E/A mit einer synchronen Bitbündeldatenübertragung unterstützen. Das CPU-Model unterstützt eine Architektur, die einen entsprechenden Satz von Anweisungen auf die POSIX-Schnittstelle abbildet, die dem Betriebssystem eines Personalcomputers sowie eingebetteten Systemen zugrunde liegt.This invention describes a CPU model that uses a set of interface signals that support interrupt driven processing of a FIFO-based I / O with synchronous burst data transmission. The CPU model supports an architecture that maps a corresponding set of instructions to the POSIX interface that underlies the operating system of a personal computer as well as embedded systems.

Das CPU-Model verwendet wenige bekannte befähigende Technologien kreativ, um einen hohen Datendurchsatz zu bewirken, und kombiniert dieselben auf eine solche Weise, um eine ungewöhnliche Sicht einer Datenverarbeitung zu haben.The CPU model creatively uses few known enabling technologies to achieve high data throughput and combines them in such a way as to have an unusual view of data processing.

Die bewährten befähigenden Technologien sind eine synchrone Bitbündeldatenübertragung, FIFO, separate Speicherbereiche für unterschiedliche Stapel, autonome lokale E/A-Register (IOR; IOR = I/O register) und Vektorbeschreiber. Komplizierte Technologien, wie zum Beispiel eine Cache-Speichermanipulation, eine Registerumbenennung, ein Fließbandbetrieb und andere datenabhängige manipulierende Schemata werden weggelassen. Große Daten-Caches, bei denen die Effektivität hinsichtlich der Natur probabilistisch bzw. zufällig ist, werden durch ein deterministisches Array von FIFO ausgetauscht.The proven enabling technologies are synchronous burst data transmission, FIFO, separate stack storage, autonomous local I / O registers (IOR) and vector descriptors. Complicated technologies such as cache manipulation, register renaming, pipeline operation, and other data-dependent manipulative schemes are omitted. Large data caches, where nature's effectiveness is probabilistic, are exchanged by a deterministic array of FIFOs.

Dieses CPU-Model ist um unterbrechungsgetriebene Signalquittungsbetriebsschemata unter Verwendung der allgemein verstandenen Unterbrechungseinrichtung des INT-INTA-(= Interrupt-Interrupt Acknowledge = Unterbrechung-Unterbrechung-Bestätigen)Paars von Signalen in Verbindung mit einem neuen Satz von synchronen Bitbündeldatenübertragungssignalen zentriert. Dies erbringt die einfache Philosophie von unterbrechungsgetriebenen Prozessen. Wenn jedes Ereignis unterbrechungsgetrieben ist, passieren viele Dinge, das heißt viele herkömmliche Bussteuersignale können redundant gemacht werden, sodass der DMA, Busbrücken, Multi-Zuteiler und der E/A-Bus, wie zum Beispiel der PCI und die Varianten desselben, eliminiert werden.This CPU model is centered around interrupt driven signal handoff schemes using the commonly understood interceptor of the INT-INTA (Interrupt-Interrupt Acknowledge) pair of signals in conjunction with a new set of synchronous burst data transmission signals. This provides the simple philosophy of interruption-driven processes. When each event is interrupt driven, many things happen, that is, many conventional bus control signals can be made redundant, eliminating the DMA, bus bridges, multi-arrays, and the I / O bus, such as the PCI and its variants.

Unterbrechungsgetriebene Prozesse sollten sich sehr gut an einen präemptiven Mehraufgabenkern adaptieren, wie zum Beispiel an Linux, das den Prozesszeitplaner (englisch: process scheduler) hat, der ein Hintergrundprogramm bzw. Daemon ist, der einen laufenden Prozess durch einen Zeitgebertick unterbricht, was bedeutet, dass derselbe ebenfalls unterbrechungsgetrieben ist.Interrupt-driven processes should adapt well to a preemptive multi-tasking kernel, such as Linux, which has the process scheduler, which is a background program or daemon that interrupts a running process through a timer tick, meaning that the same is also interruption driven.

KURZE BESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

Diese und andere Charakteristiken, Aspekte und Vorteile der vorliegenden Erfindung sind vollständiger zu verstehen, wenn dieselben hinsichtlich der folgenden detaillierten Beschreibungen, angehängten Ansprüche und beigefügten Zeichnungen betrachtet werden. Es zeigen:These and other characteristics, aspects, and advantages of the present invention will become more fully understood when considered in light of the following detailed description, appended claims, and accompanying drawings. Show it:

1 die internen Register und Busse, die das CPU-Modell darstellen; 1 the internal registers and buses representing the CPU model;

2 die Schnittstellensignale bei einer bevorzugten Verbindung, um eine Wechselwirkung mit einer ISR, Vektortabellen und Vorrichtungen darzustellen; 2 the interface signals at a preferred link to interact with an ISR, vector tables and devices;

3 ein Funktionsdiagramm eines E/A-Zuteilerbegleitermoduls aus 2, erneut gezeichnet, um das CPU-Modell mit neun Steuersignalen zu zeigen, die den DMA, Brücken, mehr als einen Zuteiler und einen E/A-Bus, wie zum Beispiel den PCI, eliminieren; 3 a functional diagram of an I / O dispatcher module 2 redrawed to show the CPU model with nine control signals eliminating the DMA, bridges, more than one arbiter, and an I / O bus such as the PCI;

4 autonome Zähler und die Tageszeit, die in dem IOR-unabhängigen lokalen Bus implementiert sind; 4 autonomous counters and time of day implemented in the IOR independent local bus;

5 ein Rahmenzeiger:Stapelzeiger-Paar, wobei der FSP aus einem 20-Bit-FP und einem 12-Bit-SP, die bei einem Funktionsaufruf verwendet werden, besteht; 5 a frame pointer: stack pointer pair, where the FSP consists of a 20-bit FP and a 12-bit SP used in a function call;

6 ein atomares Blockanweisungspaar atomar1 und atomar2, was Anweisungen 1–5 atomar oder ununterbrochen durch lediglich Kippen des Bit 31 von 0 auf 1 bei einer Anweisung ausführen lässt. 6 an atomic block instruction pair atomar1 and atomar2, which allows instructions 1-5 to be executed atomically or continuously by simply tipping bit 31 from 0 to 1 at one instruction.

DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBESPIELEDETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Im Folgenden ist die vorliegende Erfindung gemäß bevorzugten Ausführungsbeispielen der vorliegenden Erfindung und Bezug nehmend auf die beigefügte Beschreibung und die beigefügten Zeichnungen beschrieben. Es versteht sich jedoch von selbst, dass ein Begrenzen der Beschreibung auf die bevorzugten Ausführungsbeispiele der Erfindung und auf die Zeichnungen lediglich dazu dient, um eine Erörterung der vorliegenden Erfindung zu erleichtern, und es ist vorstellbar, dass Fachleute verschiedene Modifikationen ersinnen, ohne von dem Schutzbereich der beigefügten Ansprüche abzuweichen.In the following, the present invention will be described in accordance with preferred embodiments of the present invention and with reference to the accompanying description and the accompanying drawings. It should be understood, however, that limiting the description to the preferred embodiments of the invention and to the drawings is merely to aid in a discussion of the present invention, and it is conceivable that those skilled in the art will devise various modifications without departing from the scope of the appended claims.

Bezug nehmend auf 1 stellt das CPU-Modell einen einzelnen zusammenhängenden Satz von 256 Arbeitsregistern 100, die mit r0–r255 bezeichnet sind, dar, die als sowohl Daten- als auch Adresszeiger (englisch: address pointer) verwendet werden können. Die Registerverwendung ist orthogonal und alle Anweisungen können auf irgendeines derselben angewendet werden. Die Register sind in 16 lokale Benutzermodusregister 101 r0–r15, 16 globale Benutzermodusregister 102 r16–r31, 16 lokale Kernmodusregister 103 r32–r47 und den Rest für einen Unterbrechungsmodus 104 unterteilt; unterteilt und zugewiesen gemäß einer Verwendung für allgemeine und andauernde Aufgaben, wie dem Prozesszeitplaner, und von Unterbrechungsquellen 208, 220, wie zum Beispiel einer USB-Vorrichtung und anderen schnellen Peripherievorrichtungen. Der einzelne große Registerraum 100 reduziert beträchtlich die Notwendigkeit einer Parameterweitergabe.Referring to 1 The CPU model provides a single contiguous set of 256 work registers 100 , which are labeled r 0 -r 255 , which may be used as both data and address pointers. The register usage is orthogonal and all instructions can be applied to any one of them. The registers are in 16 local user mode registers 101 r 0 -r 15 , 16 global user mode registers 102 r 16 -r 31 , 16 local core mode registers 103 r 32 -r 47 and the rest for an interrupt mode 104 divided; subdivided and assigned according to use for general and ongoing tasks, such as the process scheduler, and interrupt sources 208 . 220 such as a USB device and other fast peripheral devices. The single big register room 100 Significantly reduces the need for parameter passing.

Die Regeln, die die Registersätze lenken, sind die folgenden: Der Benutzermodus kann lediglich r0–r31 101, 102 sehen, während der Kernmodus und der Unterbrechungsmodus, der ein Kernmodusprozess 103, 104 ist, alle 256 Register ohne ein Bankumschalten (englisch: bank switching) sehen; Ein Kontextumschalter (englisch: context switch) im Benutzermodus 101 speichert Register r0–r15 ab, und ein Kernmoduskontextumschalter speichert Register r32–r47 103 in den jeweiligen Speicherorten derselben ab; die Register r16–r31 102 werden für Weitergabeparameter für sowohl den Benutzer- als auch den Kernmodus verwendet.The rules governing the register sets are as follows: The user mode can only be r 0 -r 31 101 . 102 while the core mode and the interrupt mode, which is a core mode process 103 . 104 is to see all 256 registers without a bank switching; A context switch in user mode 101 stores register r 0 -r 15 , and a kernel mode context switch stores register r 32 -r 47 103 in the respective storage locations thereof; the registers r 16 -r 31 102 are used for propagation parameters for both user and kernel modes.

Es gibt eine Gesamtmenge von zwölf Steuerregistern, die aus vier aktuellen Hauptsteuerregistern, d. h. Aktuelle(r) Flags/Status (FS) 105, einen aktuellen Rahmen:Stapel-Zeiger (FSP; FSP = Frame:Stack-Pointer) 106, einen aktuellen Programmzähler (PC; PC = Programm Counter) 107 und einen zweiten aktuellen Programmzähler (PC1) 108, und vier Rahmen:Stapel-Zeigern bestehen: einem FSP1 109 für einen Benutzermodusstapel, einem FSP2 110 für einen Kernmodusstapel, einem FSP3 111 für einen Unterbrechungsstapel und einem FSP4 112 für einen Funktionsaufrufstapel.There are a total of twelve control registers, made up of four current ones Main Control Registers, ie Current Flags / Status (FS) 105 , a current frame: Stack pointer (FSP = Frame: Stack pointer) 106 , a current program counter (PC; PC = program counter) 107 and a second current program counter (PC1) 108 , and four frames: stack pointers consist of: an FSP1 109 for a user mode stack, an FSP2 110 for a core mode stack, an FSP3 111 for a break stack and a FSP4 112 for a function call stack.

Beim Unterstützen der FIFO-pufferorientierten E/A kann ein E/A-Zuteiler 201 in dem CPU-Kern 200, 306 implementiert sein oder als ein separater E/A-Zuteiler-Chip 201, 300, der aus der synchronen CPU-Bitbündelübertragung einen Vorteil zieht, und eine FIFO-Puffereinrichtung implementiert sein, um andere Zuteiler, eine DMA-Einrichtung, Bussteuersignale und einen E/A-Bus, wie zum Beispiel den PCI, zu eliminieren.When supporting the FIFO buffered I / O, an I / O dispatcher may 201 in the CPU core 200 . 306 be implemented or as a separate I / O dispatcher chip 201 . 300 which takes advantage of synchronous CPU burst transmission, and a FIFO buffering device may be implemented to eliminate other dispatchers, a DMA device, bus control signals, and an I / O bus such as the PCI.

Zusätzlich zu den CPU-Steuerregistern existiert eine lokale E/A-Registerdatei (IOR; IOR = I/O register file) 117, 400, die mit zwei Toren bzw. Ports versehen ist und eine Gesamtmenge von 1024 Worten eines adressierbaren Speichers hat, von denen ein Wort vier Bytes oder 32 Bit gleicht. Diese Datei IOR 117, 400 verwendet die gleichen Signale wie eine externe E/A-Adressierung, die das Signal Eingabe/Ausgabe-Lesen (IORD; IORD = Input/Output Read) 210 und das Signal Eingabe/Ausgabe-Schreiben (IOWR; IOWR = Input/Output write) 211 sind. Die externen E/A-Adressierungssignale werden verwendet, um auf den E/A-Zuteiler-Chip 201, 300 und der Reihe nach auf die FIFO 303 bis 307 von Vorrichtungen, wie in 3 gezeigt ist, zuzugreifen.In addition to the CPU control registers, there is a local I / O register file (IOR; IOR = I / O register file). 117 . 400 , which is provided with two ports and has a total of 1024 words of addressable memory, one word of which equals four bytes or 32 bits. This file IOR 117 . 400 uses the same signals as an external I / O addressing that uses the input / output read (IORD) signal 210 and IOWR input / output write (IOWR) signal 211 are. The external I / O addressing signals are used to access the I / O dispatcher chip 201 . 300 and in turn on the FIFO 303 to 307 of devices, as in 3 shown is to access.

Bei einem ersten Ausführungsbeispiel der vorliegenden Erfindung führt bei einem typischen Rechenprozess, der eine Datenübertragung zu einer E/A-Vorrichtung betrifft, die durch das FIFO derselben geht, was bei diesem Beispiel unter Verwendung des FIFO-1 207 ist, die CPU 200 in dem Kernmodus an einem Block von Daten in dem Speicher 202 eine bestimmte Datenoperation durch. Der Block von Daten wird für eine maximale Effizienz in alle CPU-Register 103 ein Block des Registersatzes zu einer Zeit bewegt. Nach einem Abschluss der Operation wird ein Teil des Blocks von Registern zu einigen anderen Speicherorten gesendet.In a first embodiment of the present invention, in a typical computational process involving data transfer to an I / O device passing through the FIFO thereof, in this example using FIFO-1 207 is, the CPU 200 in kernel mode on a block of data in the memory 202 a particular data operation. The block of data is stored in all CPU registers for maximum efficiency 103 one block of the register set is being moved at a time. After completing the operation, part of the block is sent from registers to some other memory locations.

Daher muss ein Block von Daten in einen Speicherrahmen, Rahmen-1 229, gelesen werden, bevor ein Satz von CPU-Operationen beginnen kann, wie es vorher beschrieben ist. Dies wird durch einen E/A-Port zu dem Speicher, der bei einer synchronen Bitbündeldatenübertragung gelesen wird, vorgenommen. Eine CPU-Anweisung 203 liest unter Verwendung des Signals IORD 210 und der Signale SYNCLK 214, SNSTP1 215, SYNSTP2 216 das FIFO-1 207, bis das FIFO-1 207 leer ist. Der E/A-Zuteiler 201 aktiviert dann das SYNSTP2 216, was ein Ende der Daten angibt, an dem die CPU 200 ein Lesen stoppt.Therefore, a block of data in a memory frame, frame-1 229 , can be read before a set of CPU operations can begin, as previously described. This is done through an I / O port to the memory read in synchronous burst data transmission. A CPU instruction 203 reads using the IORD signal 210 and the signals SYNCLK 214 , SNSTP1 215 , SYNSTP2 216 the FIFO-1 207 until the FIFO-1 207 is empty. The I / O allocator 201 then activates the SYNSTP2 216 which indicates an end of the data to which the CPU 200 a reading stops.

Ein Schreiben in das FIFO-1 207, das mit einer USB-Vorrichtung 208 verbunden ist, verwendet ähnlicherweise das Signal IOWR 211 und die Signale SNSTP1 215 und SYNSTP2 216. Ein Schreiben wird durch ein Bitbündelschreiben eines Rahmens eines Speichers in dem Rahmen-1 229 zu dem FIFO-1 207 vorgenommen; wenn ein vorbestimmter Block von Daten abgeschlossen ist, aktiviert die CPU 200 das Signal SYNSTP1 215, das dem E/A-Zuteiler 201 das Ende einer Übertragung angibt.A letter in the FIFO-1 207 Using a USB device 208 Similarly, the signal IOWR is used 211 and the signals SNSTP1 215 and SYNSTP2 216 , Writing is performed by bit-bursting a frame of a memory in the frame-1 229 to the FIFO-1 207 performed; when a predetermined block of data is completed, the CPU activates 200 the signal SYNSTP1 215 that the I / O dispatcher 201 indicates the end of a transfer.

Bei einem Empfangen von Daten von einer Vorrichtung, wie zum Beispiel der USB-Vorrichtung 208, wie es vorher beschrieben ist, ist andererseits die Sicht gleich, wenn das FIFO-1 207 Daten übermitteln möchte. Das FIFO-1 207 berichtet dem E/A-Zuteiler 201, der seinerseits das Signal Unterbrechung (INT) 212 aktiviert. Bei einem Empfangen des Signals Unterbrechungsbestätigung (INTA) 213 platziert der E/A-Zuteiler 201 die Vektor-ID des FIFO-1 207 auf dem Datenbus 209. Die CPU 200 liest die Vektor-ID und springt zu der Adresse, die der ID entspricht. Die CPU 200 betritt den Kernmodus, und alle 256 Register 100 von r0–r255 werden der CPU 200 zur Verfügung gestellt, indem dieselbe lediglich jene verwendet, die für die Unterbrechungsdienstroutine (ISR) 203 des FIFO-1 207 reserviert sind. Die ISR 203 weiß, dass es sich um eine Anforderung von dem FIFO-1 207 handelt, um unter Verwendung der Signale IORD 210, SYNCLK 214, SYNSTP1 215 und SYNSTP2 216 Daten bitbündelmäßig zu lesen. Wenn das Bitbündellesen vorbei ist, aktiviert die CPU 200 das Signal SYNSTP1 215, dass das Ende eines Lesens angibt, zu dem FIFO-1 207. Die ISR 203 verlässt nach einer Ausführung der Anweisung reti 206 die Unterbrechung.Upon receiving data from a device, such as the USB device 208 On the other hand, as described above, the view is the same when the FIFO-1 207 Want to submit data. The FIFO-1 207 reports to the I / O dispatcher 201 who in turn receives the signal interruption (INT) 212 activated. Receiving the Interrupt Confirmation (INTA) signal 213 places the I / O dispatcher 201 the vector ID of the FIFO-1 207 on the data bus 209 , The CPU 200 reads the vector ID and jumps to the address corresponding to the ID. The CPU 200 enters the core mode, and all 256 registers 100 of r 0 -r 255 become the CPU 200 provided by using only those required for the interrupt service routine (ISR). 203 of the FIFO-1 207 are reserved. The ISR 203 knows that this is a request from the FIFO-1 207 acts to using the signals IORD 210 , SYNCLK 214 , SYNSTP1 215 and SYNSTP2 216 Read bitbündelmäßig data. When the bitmap reading is over, the CPU activates 200 the signal SYNSTP1 215 that indicates the end of a read to the FIFO-1 207 , The ISR 203 exits after execution of the statement reti 206 the interruption.

Bei einem zweiten Ausführungsbeispiel der vorliegenden Erfindung, das eine DMA-Übertragung nachahmt, möchte eine andere Vorrichtung oder eine andere CPU, CPU-2 219, bei einer Multiprozessorverbindung auf den Datenbus zugreifen, wobei dieselbe mittels des Signals INT21 220 (eine Beispielzahl) des E/A-Zuteilers das Signal INT 212 aktiviert, wobei die CPU 200 zu der Adresse springt, die der Vektor-ID der CPU-2 219 zugewiesen ist. Bei der ISR 203 sperrt die CPU-Anweisung busd 205 alle Busse und führt eine Haltanweisung aus, bei der die CPU 200 das Signal HALT 217 aktiviert und ein Ausführen von Anweisungen stoppt und auf das Hardwaresignal UHALT 218 von der CPU-2 219 wartet. An diesem Punkt erlangt die CPU-2 219 einen Zugriff auf Adress- und Datenbusse 231, 209 der CPU, bis dieselbe das Signal UHALT 218 aktiviert, mit dem die CPU 200 zu normal zurückkehrt und die nächste Anweisung, typischerweise reti 206, bei der das ISR die Unterbrechung verlässt, ausführt.In a second embodiment of the present invention which mimics a DMA transfer, another device or CPU, CPU-2, would like to 219 to access the data bus in a multiprocessor connection, the same by means of the signal INT21 220 (an example number) of the I / O dispatcher the signal INT 212 activated, the CPU 200 jumps to the address of the CPU-ID vector ID 219 is assigned. At the ISR 203 Disables the CPU instruction busd 205 all busses and executes a hold statement in which the cpu 200 the signal STOP 217 activates and stops executing instructions and stops on the hardware signal UHALT 218 from the CPU-2 219 waiting. At this point, the CPU-2 gains 219 Access to address and data buses 231 . 209 the CPU until the same UHALT signal 218 enabled, with which the CPU 200 returns to normal and the next Instruction, typically reti 206 at which the ISR exits the interruption.

Bei noch einer anderen Alternative einer DMA-Übertragung kann eine CPU-3 221, die über den E/A-Zuteiler 201 unter Verwendung des FIFO-4 222 verbunden ist, auf einen Block des Speichers oder einen Speicherpuffer, Rahmen-1 229 zugreifen. Der E/A-Zuteiler 201 aktiviert das Signal CPU INT 212, und nach einem Empfangen des Signals INTA 213 danach platziert die unterbrechende Vorrichtung mittels des E/A-Zuteilers 201 die Vektor-ID der Vorrichtung 221 auf dem Datenbus 209. Die CPU 200, die die Quelle derselben kennt, führt eine Routine aus, um synchron bitbündelmäßig den Speicherpuffer Rahmen-1 229 zu dem FIFO-4 222 genauso wie bei jeder anderen Vorrichtung zu übertragen, ohne dass es je nötig ist, die Busse zu sperren.In yet another alternative of DMA transfer, a CPU-3 221 passing through the I / O dispatcher 201 using the FIFO-4 222 connected to a block of memory or a memory buffer, frame-1 229 access. The I / O allocator 201 activates the signal CPU INT 212 , and after receiving the signal INTA 213 then place the interrupting device through the I / O dispatcher 201 the vector ID of the device 221 on the data bus 209 , The CPU 200 , which knows the source of the same, executes a routine to synchronize bit-by-bit the memory buffer frame-1 229 to the FIFO-4 222 as with any other device, without ever having to lock the buses.

Bei einem dritten Ausführungsbeispiel der vorliegenden Erfindung ist eine Hardwareunterbrechungseinrichtung ersonnen, um fast null Haushaltsführungs-(englisch: houskeeping)Anweisungen für eine schnelle und effiziente Unterbrechungsverarbeitung bei einer ISR 203 zu erzeugen. Eine Unterbrechungsanforderung wird anhand des Signals INT 212 von einer externen Quelle, wie zum Beispiel einem E/A-Zuteiler 201, aktiviert. Die CPU 200 antwortet mit einem Signal INTA 213, wonach die unterbrechende Vorrichtung, wie zum Beispiel eine USB-Vorrichtung 208, mittels des E/A-Zuteilers 201 die Vektor-ID der Vorrichtung 208 auf dem Datenbus 209 platziert. Die CPU 200 liest dann die Vektor-ID und vollzieht einen direkten Sprung zu der Vektor-ID-Adresse. Ein Vektor 'va' bezeichnet den Vektor 'a', der äquivalent zu der ID-Nummer ist, und kann bis zu 18 Bit hinsichtlich des Werts beanspruchen. Die CPU 200 erkennt lediglich 256 Hardwareunterbrechungsquellen als in dem Hardwareunterbrechungsvektorspeicherraum 226 reserviert.In a third embodiment of the present invention, a hardware interrupt device is devised to provide nearly zero housekeeping instructions for fast and efficient interrupt handling in an ISR 203 to create. An interrupt request is based on the signal INT 212 from an external source, such as an I / O dispatcher 201 , activated. The CPU 200 responds with a signal INTA 213 After that, the interrupting device, such as a USB device 208 , by means of the I / O dispatcher 201 the vector ID of the device 208 on the data bus 209 placed. The CPU 200 then reads the vector ID and makes a direct jump to the vector ID address. A vector 'va' denotes the vector 'a', which is equivalent to the ID number, and can claim up to 18 bits in value. The CPU 200 detects only 256 hardware interrupt sources as in the hardware interrupt vector memory space 226 reserved.

Vor einem Ausführen der ersten Anweisung in der ISR 203, die der Vektor-ID entspricht, werden die aktuellen Hauptsteuerregister, die aus dem FS 105, dem FSP 106, dem PC 107 und dem PC1 108 bestehen, zu einem zweckgebundenen Satz von vier Kopien der Register in einem Unterbrechungsmodus abgespeichert, der aus Unterbrechungs-Flags/Status (FS-I) 113, einem Unterbrechungs-Rahmen-Stapel-Zeiger (FSP-I; FSP-I = interrupt Frame-Stack-Pointer) 114, einem Unterbrechungs-Programmzähler (PC-I; PC-I = interrupt Programm-Counter) 115 und einem zweiten Unterbrechungs-Programmzähler (PC1-I; PC1-I = interrupt Programm-Counter) 116 besteht.Before executing the first statement in the ISR 203 , which corresponds to the vector ID, will be the current main control registers coming from the FS 105 the FSP 106 , the PC 107 and the PC1 108 stored to a dedicated set of four copies of the registers in an interrupt mode consisting of Interrupt Flags / Status (FS-I) 113 an interrupt frame stack pointer (FSP-I); interrupt frame stack pointer (FSP-I) 114 , an interrupt program counter (PC-I; PC-I = interrupt program counter) 115 and a second interrupt program counter (PC1-I; PC1-I = interrupt program counter) 116 consists.

Dann wird der aktuelle Kernmodus FSP 106 mit dem Unterbrechungs-Rahmen-Stapel-Zeiger FSP3 111 beladen, und der PC 105 wird mit dem Zeiger, der sich bei der Vektor-ID befindet, beladen, und die ISR beginnt dort. Es sind keine anderen Anweisungen notwendig, bei denen die erste Anweisung die tatsächlichen Codes der ISR 203 enthalten kann; mit der Erfordernis von lediglich einer Anweisung reti 206. Bei dem Unterbrechungsmodus sind alle 256 Register 100 r255–r0 sichtbar, wobei r255–r48 104 tatsächlich durch ein Abkommen reserviert sind.Then the current core mode becomes FSP 106 with the interrupt frame stack pointer FSP3 111 loaded, and the PC 105 is loaded with the pointer located at the vector ID and the ISR starts there. There are no other instructions needed where the first statement is the actual ISR codes 203 may contain; with the requirement of only one instruction reti 206 , In the interrupt mode, all 256 registers 100 r 255 -r 0 visible, where r 255 -r 48 104 actually reserved by agreement.

Beim Verlassen der ISR 203 mit einer Anweisung reti 206 werden die vorausgehend abgespeicherten Unterbrechungsregister FSP-I 113, FSP-I 114, PC-I 115 und PC1-I 116 zu den aktuellen Hauptsteuerregistern FS 105, FSP 106, PC 107 und PC1 108 zurück kopiert, was einen vorausgehenden Automatenzustand wiederherstellt.When leaving the ISR 203 with a statement reti 206 become the previously stored interruption registers FSP-I 113 , FSP-I 114 , PC-I 115 and PC1-I 116 to the current main control registers FS 105 , FSP 106 , PC 107 and PC1 108 copied back, which restores a previous state of the machine.

Es ist ein viertes Ausführungsbeispiel der vorliegenden Erfindung, bei dem die CPU-Architektur die Wechselspieleinrichtung der Schnittstellenleitungen und FIFO darstellt, gezeigt, um den DMA, Brücken, mehr als einen Zuteiler und einen E/A-Bus, wie zum Beispiel den PCI, zu eliminieren. Der E/A-Zuteiler 201 in 2 ist erneut gezeichnet, um der E/A-Zuteiler 300 in 3 zu werden, um zu zeigen, wie jene herkömmlichen CPU-Komponenten eliminiert werden. Obwohl diese Patentbeschreibung einen separaten Begleiterchip als den E/A-Zuteiler 201 beschreibt, kann derselbe in der CPU 306 selbst aufgenommen sein, wobei FIFO durch auf dem Chip befindliche Datencaches (was die Norm für andere Prozessormodelle ist) ausgetauscht werden.It is a fourth embodiment of the present invention in which the CPU architecture represents the interface line interface device and FIFO, shown to the DMA, bridges, more than one arbiter, and an I / O bus, such as the PCI eliminate. The I / O allocator 201 in 2 is redrawn to the I / O dispatcher 300 in 3 to show how those conventional CPU components are eliminated. Although this specification describes a separate companion chip as the I / O assigner 201 describes the same in the CPU 306 itself, where FIFO is replaced by on-chip data caches (which is the norm for other processor models).

Bezug nehmend auf 3 sind die Schnittstellen-Ports für E/A-Vorrichtungen, wie zum Beispiel die Vorrichtung 1, alle gleich und konsistent, wenn dieselben der E/A-Port-Maschine, wie zum Beispiel der E/A-Port-Maschine 1 302, gezeigt werden. Die Hauptfunktion der Port-Maschine besteht darin, von seriell zu parallel, wenn eingegeben wird, und umgekehrt, wenn ausgegeben wird, für serielle Vorrichtungen zu wandeln. Daten zwischen Vorrichtungen werden in Speicherpuffern in FIFO, wie zum Beispiel dem FIFO-1 303, gespeichert. Eine Mehrzahl von verschiedenen Vorrichtungen kann mit jeweiligen E/A-Port-Maschinen 302308 verbunden sein, wobei Datenübertragungen autonom durch die Maschinen gehandhabt werden, was in den FIFO 303307 endet. Sobald man in den FIFO ist, wie zum Beispiel in dem FIFO-1 303, entscheidet die Zuteiler- und Unterbrechungsmaschine 304 gemäß einer Regel, die während einer Initialisierungszeit konfiguriert wird, autonom, welches FIFO zu bedienen ist. Die CPU 306 führt dann eine synchrone Bitbündeldatenübertragung auf eine DMA-Art zwischen den FIFO, wie es durch die Zuteiler- und Unterbrechungsmaschine 304 gezeigt ist, unter Verwendung der neun CPU-Steuersignale 305 aus. Ebenfalls während der Initialisierung wird die Zuteiler- und Unterbrechungsmaschine 304 für die Länge eines Datenpuffers bei den FIFO 303307 konfiguriert. Für sehr langsame Vorrichtungen kann der Puffer sehr klein sein, wobei der minimale Wert von lediglich eins genommen wird. Für sehr schnelle Vorrichtungen kann die Puffergröße den maximalen Wert annehmen. Eine Brücke ist somit nicht notwendig, da unterschiedliche Datenraten der Vorrichtungen durch die Puffergrößen in den FIFO 303307 untergebracht werden. Lediglich ein E/A-Zuteiler, der die Zuteiler- und Unterbrechungsmaschine 304 ist, ist zusätzlich für so viele FIFO wie möglich, die in einem einzelnen Chip implementiert werden können, erforderlich, was den E/A-Bus, wie zum Beispiel den PCI, eliminiert.Referring to 3 For example, the interface ports for I / O devices, such as device 1, are all the same and consistent when they are the I / O port machine, such as the I / O port machine 1 302 , to be shown. The main function of the port machine is to convert from serial to parallel when inputting, and vice versa when outputting to serial devices. Data between devices is stored in memory buffers in FIFO, such as FIFO-1 303 , saved. A plurality of different devices may be associated with respective I / O port machines 302 - 308 data transfers are handled autonomously by the machines, resulting in the FIFO 303 - 307 ends. Once you are in the FIFO, such as in the FIFO-1 303 , decides the allocator and interruption engine 304 autonomously, which FIFO to operate according to a rule that is configured during an initialization time. The CPU 306 then performs a synchronous burst data transmission in a DMA manner between the FIFOs, as done by the arbiter and interrupt engine 304 is shown using the nine CPU control signals 305 out. Also during initialization becomes the dispatcher and interrupt engine 304 for the length of a data buffer at the FIFO 303 - 307 configured. For very slow Devices, the buffer may be very small, taking the minimum value of only one. For very fast devices, the buffer size may take on the maximum value. A bridge is thus not necessary, since different data rates of the devices through the buffer sizes in the FIFO 303 - 307 be housed. Only one I / O dispatcher, the allocator and interrupt engine 304 In addition, as many FIFOs as possible that can be implemented in a single chip are required, which eliminates the I / O bus, such as the PCI.

Bei einem fünften Ausführungsbeispiel der vorliegenden Erfindung wird eine lokale E/A-Registerdatei (IOR) 117, 400, die mit zwei Ports versehen sein kann, genutzt, um einen unabhängigen lokalen Bus 406 zu erzeugen, der eine autonome Hardwarefunktion oder eine Maschine bei einem von solchen Ausführungsbeispielen, eine Tageszeitfunktion, implementieren kann. Die IOR 117, 400 kann durch ein 10-Bit-Wort für bis zu 1024 Register in dem Kernmodus adressiert werden und kann ferner verwendet werden, um lokale Systemvariablen zu speichern.In a fifth embodiment of the present invention, a local I / O register file (IOR) is used. 117 . 400 that can be equipped with two ports, used to connect to an independent local bus 406 which may implement an autonomous hardware function or machine in one of such embodiments, a time of day function. The IOR 117 . 400 can be addressed by a 10-bit word for up to 1024 registers in kernel mode and can also be used to store local system variables.

Bezug nehmend auf 4 ist bei dem bevorzugten Ausführungsbeispiel eine Hardwareechtzeittaktmaschine, die periodisch einen Tageszeitzähler 404 aktualisiert, aus anderen Zählern aufgebaut; dem Zähler 1 402 und dem Zähler 2 403.Referring to 4 In the preferred embodiment, a hardware real-time clock machine that periodically is a daily time counter 404 updated, built from other meters; the counter 1 402 and the counter 2 403 ,

Eine stabile Kristalltaktquelle 401 bei einer bestimmten Frequenz im Megaherzbereich lässt einen ersten Zähler, den Zähler 1 402, laufen, wobei nach einer bestimmten Zeitdauer gemäß dem Wort, das in denselben geschrieben ist, ein zweiter Zähler, der Zähler 2 403, aktualisiert wird, der nach einer bestimmten Zeitdauer gemäß dem Wort, das in denselben geschrieben ist, seinerseits den Tageszeitzähler 404 aktualisiert.A stable crystal clock source 401 at a certain frequency in the megahertz range leaves a first counter, the counter 1 402 , run, wherein after a certain period of time according to the word written in the same, a second counter, the counter 2 403 , is updated after a certain period of time according to the word written in the same, in turn, the daily time counter 404 updated.

Eine Zeitgebermaschine kann auf eine zu der Tageszeitmaschine ähnliche Art aufgebaut sein und den Zeitgeber 1 405 implementieren. Es kann zugelassen sein, dass die CPU 200 mittels des Hauptdatenbusses eines der Zählerregister 402, 403, 404, 405 liest, um auf alle Zeitgeber bezogene Funktionen zu implementieren. Das Tageszeitregister 404 kann in der Lage sein, bei Ereignissen, wie zum Beispiel dieselben, die für den Linux-cron-Daemon erforderlich sind, Unterbrechungen zu verursachen. Obwohl in 4 lediglich zwei Zeitgeber als aufgebaut gezeigt sind, ist es für Fachleute offensichtlich, dass unter Verwendung der IOR 117, 400 mehr als zwei Zeitgeber aufgebaut sein können, sowie dieselbe autonom über einen unabhängigen lokalen IOR-Datenbus 406 läuft, wobei gleichzeitig der Hauptdatenbus 407 aktiv ist.A timer machine may be constructed in a manner similar to the time of day machine and the timer 1 405 to implement. It may be admitted that the CPU 200 by means of the main data bus of one of the counter registers 402 . 403 . 404 . 405 reads to implement all timer-related functions. The time of day register 404 may be able to cause interruptions to events such as the ones required for the Linux cron daemon. Although in 4 It will be apparent to those skilled in the art that using only the IOR 117 . 400 More than two timers can be constructed, as well as the same autonomously over an independent local IOR data bus 406 running, where at the same time the main data bus 407 is active.

Bei einem sechsten Ausführungsbeispiel der vorliegenden Erfindung ist eine Mehrzahl von Rahmen-Stapel-Zeigern implementiert, um insbesondere die Prozeduraufrufanweisungen zu unterstützen, die die Funktions- und Systemanweisungen fn va und sys va unter Nutzung einer Notation eines Vektors 'va', wie es in Anspruch 3 beschrieben ist, betreffen. Zusätzlich zu der Sprung-(englisch: jump) und Verknüpfungs-(englisch: link)Anweisung j1 a und der Aufrufanweisung call a, die lokal sind und bei einer Aufgabe verwendet werden und den gleichen FSP 106, 500 als die Aufgabe verwenden, implementiert die CPU 200 unter Verwendung einer Vektoreinrichtung, wobei 'fn' die Mnemonik für eine Funktion ist, 'v' für einen Vektor ist und 'a' die Vektornummer oder die ID ist, eine Funktionsaufrufanweisung fn va. Dieser Funktionsaufruf kann von jeder Aufgabe oder jedem Programm gerufen werden und ist ablaufinvariant.In a sixth embodiment of the present invention, a plurality of frame-stack pointers are implemented to assist, in particular, the procedure call instructions that use the function and system instructions fn va and sys va, using a notation of a vector 'va' as claimed in 3, relate. In addition to the jumper statement j1 a and the call statement call a, which are local and used in a task and the same FSP 106 . 500 as the task implements the CPU implements 200 using vector means, where 'fn' is the mnemonics for a function, 'v' is for a vector and 'a' is the vector number or the ID, a function call instruction fn va. This function call can be called by any task or program and is process-invariant.

Bezug nehmend auf Fig. 5Referring to FIG. 5

Der FSP 106, 500 ist als ein 20-Bit-Rahmenzeiger (FP; FP = frame pointer) 501 und als ein 12-Bit-Stapelzeiger (SP; SP = stack pointer) 502 definiert. Dies lässt eine Größe des SP 502 von 1k-Worten zu. Das vorhergehende FP:SP-Wort oder den FSP 106, 500 zeigt der FP-0 504, der auf 0x00100000 initialisiert ist.The FSP 106 . 500 is considered a 20-bit frame pointer (FP; FP = frame pointer) 501 and as a 12-bit stack pointer (SP; SP = stack pointer) 502 Are defined. This leaves a size of SP 502 from 1k words too. The previous FP: SP word or the FSP 106 . 500 shows the FP-0 504 initialized to 0x00100000.

Der Grundmechanismus bei jedem Funktionsaufruf ist in 5 gezeigt. Bei jedem Funktionsaufruf wird ein neuer FP 501 einfach durch Inkrementieren des FP 501 erzeugt. Dies wird automatisch durch die CPU 200 durch Addieren einer 1 zu dem Bit 12 (d12) 503 oder äquivalent Addieren von 0x1000 zu dem Wort des FSP 500 vorgenommen. Der aktuelle FSP 500 wird in dem FSP4 112 abgespeichert, der als der Rahmen-Stapel-Zeiger für einen Funktionsaufruf fn va markiert ist. Die aktuellen FS 105, FSP 106, PC 107 und PC1 108 werden in Versätzen (englisch: offsets) von dem Start von FP-0 504 abgespeichert. Der ganze lokale Registersatz 101 wird in einem Versatz von dem Ort, auf den durch FP-0 504 gezeigt wird, abgespeichert. Der PC 107 wird mit dem Zeiger bei der Funktionsvektoradresse geladen, und das Programm wird dahin verlegt.The basic mechanism for each function call is in 5 shown. Each function call will be a new FP 501 simply by incrementing the FP 501 generated. This is done automatically by the CPU 200 by adding a 1 to the bit 12 (d 12 ) 503 or equivalently adding 0x1000 to the word of the FSP 500 performed. The current FSP 500 is in the FSP4 112 which is marked as the frame stack pointer for a function call fn va. The current FS 105 , FSP 106 , PC 107 and PC1 108 will be in offsets from the start of FP-0 504 stored. The whole local register set 101 is in an offset from the place pointed to by FP-0 504 is shown stored. The computer 107 is loaded with the pointer at the function vector address and the program is moved there.

Bei der Anweisung retf (Rücksprung von dem Funktionsaufruf) wird umgekehrt der aktuelle FP 501 dekrementiert, alle Register werden mit dem abgespeicherten Satz mit einem Versatz von dem neuen FP 501 beladen. Dies wird automatisch durch die CPU 200 durch Subtrahieren von 1 von dem Bit 12 (d12) 503 oder durch Subtrahieren von 0x1000 von dem Wort des FSP 500 vorgenommen. Das Programm wird zu dem alten PC 506 verlegt. Dieses geht eine Verschachtelungsebene nach oben, und bei der nächsten angetroffenen Anweisung retf wird der FP 501 wieder dekrementiert, und der Rücksprungprozess wird wiederholt.Conversely, the statement retf (return from the function call) returns the current FP 501 decrements all registers with the stored sentence with an offset from the new FP 501 loaded. This is done automatically by the CPU 200 by subtracting 1 from the bit 12 (d 12 ) 503 or by subtracting 0x1000 from the word of the FSP 500 performed. The program becomes the old PC 506 laid. This one level of nesting goes up, and at the next encountered statement, retf becomes FP 501 decremented again, and the return process is repeated.

Ein siebtes Ausführungsbeispiel der vorliegenden Erfindung, bei dem die CPU-Architektur unter Nutzung einer Vektor-ID oder einer Notation 'va' des Vektors Anweisungen erzeugt, und bei dem eine Verwendung bei einigen anderen darstellenden Anweisungen als bei den Unterbrechungsbeschreibern für die ISR 203 veranschaulicht ist, besteht in Beschreibertabellen, wie zum Beispiel dem PCB (= process-control-block = Prozesssteuerblock), und in FIFO-Puffern in einem Hauptspeicher für positionsunabhängige Codes. Die Vektor-ID sind reservierte Speicherorte von dem Beginn des Adressraums 0 bis zu 0x7ffff. Dieselben sind als Hardwareunterbrechungsvektoren 226 von 0x0 bis 0xff, Kernaufrufvektoren 227 von 0x100 bis 0x2ff und als der Rest von 0x300 bis 0x1ffff 228 für Funktionsaufrufvektoren und andere Beschreibertabellen definiert. A seventh embodiment of the present invention wherein the CPU architecture generates instructions using a vector ID or a notation 'va' of the vector, and which is used in some other illustrative instructions than the interrupt writers for the ISR 203 is descriptive tables, such as the PCB (= process-control-block), and in FIFO buffers in a main memory for position-independent codes. The vector IDs are reserved locations from the beginning of address space 0 to 0x7ffff. They are called hardware interruption vectors 226 from 0x0 to 0xff, core call vectors 227 from 0x100 to 0x2ff and the rest from 0x300 to 0x1ffff 228 defined for function call vectors and other descriptor tables.

Bei einem FIFO-Ausführungsbeispiel kann auf den Rahmenspeicherpuffer des FIFO-1 207, Rahmen-1 229, lediglich als v0x700 Bezug genommen werden, was sich an einem Speicherort 0x700 x 4 = 0x1C00 befindet. Somit enthält der Speicherort 0x1C00 den Hauptspeicherpuffer des FIFO-1. Bei einer Pufferverwendung kann ähnlicherweise auf ein Datenarray als v0x900 230 Bezug genommen werden, das als Rahmen 2 gezeigt ist, oder der Rahmenzeiger befindet sich bei dem Speicher 0x900 x 4 = 0x2400. Um auf das hundertste Array zuzugreifen, werden lediglich die folgenden CPU-Anweisungen verwendet:
m v0x700, r1 → Bewegen des Vektors v0x700 zu dem Register r1
m @r1, r2 → Bewegen der Daten, auf die durch das Register r1 gezeigt wird, zu dem Register r2
In a FIFO embodiment, the frame memory buffer of FIFO-1 207 , Frame-1 229 , only referred to as v0x700, which is located in a location 0x700 x 4 = 0x1C00. Thus, location 0x1C00 contains the main memory buffer of FIFO-1. Similarly, a buffer usage may point to a data array as v0x900 230 Be referred to as a frame 2 is shown, or the frame pointer is at the memory 0x900 x 4 = 0x2400. To access the hundredth array, only the following CPU statements are used:
m v0x700, r 1 → move vector v0x700 to register r 1
m @r 1 , r 2 → move the data pointed to by the register r 1 to the register r 2

v0x700 ist die Notation für den Vektor 0x700, 'm' ist die Mnemonik für 'bewegen', und das Zeichen '@' impliziert 'an dem Ort', und 0x ist die Präfixnotation für hexadezimal. Die Assembler-Anweisung liest sich von links nach rechts.v0x700 is the notation for the vector 0x700, 'm' is the mnemonics for 'move', and the character '@' implies 'in the place', and 0x is the prefix notation for hexadecimal. The assembler statement reads from left to right.

r2 enthält nun den tatsächlichen Zeiger zu dem Puffer des Arrays in dem Rahmen-1 229.r 2 now contains the actual pointer to the buffer of the array in frame-1 229 ,

Das 100ste Glied ist dann:
m @r2+100, r3 → Bewegen der Daten, auf die durch @r2+100 gezeigt wird, zu dem Register r3.
Oder das 101ste Glied; m @r2+101, r3.
The 100th member is then:
m @ r 2 +100, r 3 → move the data pointed to by @r 2 +100 to register r 3 .
Or the 101st member; m @ r 2 +101, r 3 .

Sobald die Vektor-ID verwendet wird, um den tatsächlichen Zeiger zu erhalten, kann r2 nun als der Basiszeiger verwendet werden, und auf Variablen in der Vektor-ID oder dem Beschreiber kann durch Indexieren von dem Basiszeiger r2 zugegriffen werden.Once the vector ID is used to obtain the actual pointer, r 2 can now be used as the base pointer, and variables in the vector ID or descriptor can be accessed by indexing from the base pointer r 2 .

Die Vektornotation kann ferner bei einer Sprunganweisung verwendet werden; jp va; wobei 'jp' die Mnemonik für 'Springen' ist, 'v' für 'Vektor' ist und 'a' die Vektors oder die ID (Identifizierung) ist.The vector notation can also be used in a jump instruction; jp va; where 'jp' is the mnemonics for 'jumping', 'v' is for 'vector' and 'a' is the vector or the ID (identification).

Beim Antreffen dieser Anweisung wird die CPU den PC (= Programm-Counter = Programmzähler) zu der Vektornummer 'a' transferieren bzw. verlegen, was die Adresse 'a' x 4 spezifiziert, die die tatsächliche PC-Adresse enthält, zu der zu springen ist.Upon encountering this instruction, the CPU will transfer the PC (= program counter) to the vector number 'a', which specifies the address 'a' x 4 containing the actual PC address to jump to is.

Noch ein anderer Fall der CPU-Architektur, die eine Verwendung der Vektor-ID und eine synchrone Bitbündelübertragungsoperation veranschaulicht, besteht in einem Laden eines Rahmens von Parametern von einem Speicherort. Ein Rahmen von Parametern ist hier als sechzehn zusammenhängende 32-Bit-Worte in einem Speicher definiert, der auf den Benutzer- oder lokalen Kernmodusregistersatz abgebildet ist.Yet another case of the CPU architecture that illustrates use of the vector ID and a synchronous burst transmission operation is loading a frame of parameters from a memory location. A set of parameters is defined herein as sixteen contiguous 32-bit words in a memory mapped to the user or local kernel mode register set.

Bei der CPU-Anweisung ms @va, rb, bedeutet 'ms' „synchrones Bewegen oder bitbündelmäßiges Bewegen eines Blocks von Daten 16 Wörter beginnend von dem Vektor 'a' zu 16 Registern beginnend bei rb”, und 'v' ist die Mnemonik für 'Vektor', und 'a' ist die Vektor-ID.In the CPU instruction ms @va, r b , 'ms'"means moving a block of data in a synchronized manner 16 words starting from the vector' a 'to 16 registers starting at r b ', and 'v' is the Mnemonic for 'vector', and 'a' is the vector ID.

Der Rahmen eines Blocks von Daten, der als ein Rahmen, der als Rahmen-1 229 gezeigt ist, bekannt ist, der der Start der Adresse v0x700 eines Vektors ist, ist ein zusammenhängender Satz oder Rahmen von sechzehn 32-Bit-Datenworten. Dieser Rahmen von 16 Worten wird auf eine Bitbündelart bei jedem Zyklus des SYNCLK 214 übertragen.The frame of a block of data, called a frame, called frame-1 229 4, which is the start of the address v0x700 of a vector, is a contiguous set or frame of sixteen 32-bit data words. This frame of 16 words becomes a burst type at every cycle of the SYNCLK 214 transfer.

Bei einem achten Ausführungsbeispiel der vorliegenden Erfindung kann veranlasst werden, dass alle Anweisungen atomar laufen, was bei einer Synchronisation von Prozessen bei einem Multiverarbeitungssystem, die typischerweise einen Speicherzugriff und einen Vorrichtungszugriff betrifft, erforderlich ist. Der Speicherzugriff ist an einem Ort oder einem Block eines kritischen Speichers (kritische Region). Eine atomare Anweisungsoperation, die bei der Lesen-modifizieren-schreiben-Sequenz bei einer Operation ohne Unterbrechung auf der CPU-Ebene eine Kohärenz bewahrt, ermöglicht herkömmlicherweise andere höhere flexiblere Synchronisationsmechanismen, um Mutex-(= Mutually-Exclusion = gegenseitige Ausschließung)Ressourcen durchzusetzen, bei denen, wenn ein Prozess einen Zugriff erhält, die anderen warten müssen.In an eighth embodiment of the present invention, all instructions may be caused to run atomically, which is necessary in synchronizing processes in a multi-processing system, which typically involves memory access and device access. The memory access is at a critical memory location or block (critical region). An atomic instruction operation that preserves coherency in the read-modify-write sequence in an uninterrupted CPU-level operation conventionally allows other higher-level, more flexible synchronization mechanisms to enforce mutual mutilation (mutex) resources. where when one process gets access, others have to wait.

Auf Fig. 6 Bezug nehmendReferring to Fig. 6

Bei diesem Ausführungsbeispiel werden alle Mutex-Grundelemente entfernt und durch eine einzelne atomare Blockanweisung mit einem Präfix- und Postfixpaar atomar1 600 und atomar2 601 ersetzt. Daher kann das atomare Anweisungspaar einen Block von Anweisungen 602, um atomar ausgeführt zu werden, verkapseln. Die Anweisungen in dem Block 602 werden, egal wie lang dieselben sind, sequenziell ununterbrochen ausgeführt. Dieses Paar von atomar1 600 – atomar2 601 kann alle Anweisungen durch lediglich Einstellen eines MSb Bit 31 603 des Anweisungsworts 604 auf „1”, was eine atomare Anweisung, wie es in 5 gezeigt ist, angibt, atomar machen. Daher können herkömmliche atomare Anweisungen, wie zum Beispiel xchg (Intel 8088), compare-exchange (= vergleichen-austauschen), compare-decrement (= vergleichen-dekrementieren) in anderen CPU, eliminiert werden. Ferner handelt es sich um einen Supersatz von blockartigen atomaren Anweisungen, wie sie in dem Anweisungssatz des Intel x86 oder IA-32 implementiert sind, bei dem lediglich wenige ausgewählte Anweisungen angewendet und verwendet werden können.In this embodiment, all mutex primitives are removed and atomic1 by a single atomic block statement with a prefix and postfix pair 600 and atomic2 601 replaced. Therefore, the atomic instruction pair may have a block of instructions 602 to be atomized to encapsulate. The instructions in the block 602 no matter how long they are, are executed sequentially, continuously. This couple from atomar1 600 - atomic2 601 can clear all instructions by just setting an MSb bit 31 603 of the instruction word 604 to "1", which is an atomic statement, as in 5 shown, indicates make atomic. Therefore, conventional atomic instructions, such as xchg (Intel 8088), compare-exchange, compare-decrement in other CPU, can be eliminated. Further, it is a superset of block-type atomic instructions, as implemented in the instruction set of the Intel x86 or IA-32, in which only a few selected instructions can be applied and used.

Das Paar atomar1 600 – atomar2 601 wird durch den Programmierer auf der Quellebene lediglich als eine Assembler-Vorschrift gesehen.The pair atomar1 600 - atomic2 601 is seen by the programmer at the source level merely as an assembler prescription.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 3401376 [0002] US 3401376 [0002]
  • US 3518632 [0002] US 3518632 [0002]

Claims (15)

CPU-Model umfassend: a. lineare 256 Arbeitsregister, die nicht bankumgeschaltet werden und gemäß Modi, einem Benutzermodus, einem Kernmodus und einem Unterbrechungsmodus, in Sätze unterteilt sind; b. einer zuerst-hinein-zuerst-hinaus-(FIFO-; FIFO = First-In-First-Out)pufferorientierten Eingabe/Ausgabe (E/A), die unterbrechungsgetrieben ist und die Vorrichtungen gegenüber der CPU als homogen zeigt; c. einem E/A-Zuteiler, der in der CPU integriert sein kann, der eine Direktspeicherzugriffs-(DMA-; DMA = Direct-Memory-Access)Einrichtung, Bussteuersignale, wie zum Beispiel Bus-Anforderung/Gewährung, Busbrücken und einen E/A-Bus, wie zum Beispiel die periphere Verbindungsschnittstelle (PCI; PCI = Peripheral-Connect-Interface), eliminiert; d. einer einheitlichen E/A-Adressierung, die aus einer lokalen E/A oder einem E/A-Register (IOR; IOR = I/O register), das in der gleichen CPU integriert ist, und einer externen E/A besteht; e. einer separaten Speicherzuteilung für vier unterschiedliche Stapeloperationen, dem Benutzerstapel, dem Kernstapel, dem Unterbrechungsstapel und dem Prozeduraufrufstapel; f. einem konsistenten Verfahren einer Datenübertragung mit einem signalunterstützenden Block und synchronen Bitbündelmodi.CPU model comprising: a. linear 256 work registers that are not bank switched and divided into sets according to modes, a user mode, a kernel mode, and an interrupt mode; b. a first-in-first-out (FIFO) buffered input / output (I / O) which is interrupt driven and which presents the devices as homogeneous to the CPU; c. an I / O arbiter that may be integrated with the CPU, a Direct Memory Access (DMA) device, bus control signals such as bus request / grant, bus bridges, and an I / O Bus, such as the Peripheral-Connect-Interface (PCI); d. a uniform I / O addressing consisting of a local I / O or an IOR register (IOR) integrated in the same CPU and an external I / O; e. a separate memory allocation for four different batch operations, the user stack, the core stack, the interrupt stack, and the procedure call stack; f. a consistent method of data transmission with a signal-supporting block and synchronous burst modes. CPU-Modell nach Anspruch 1, das die Funktionalitäten mit der Mehrzahl von Signalen ermöglicht, die ein Speicherlesesignal (RD), ein Speicherschreibsignal (WR), ein E/A-Lesesignal (IORD), ein E/A-Schreibsignal (IOWR), ein synchrones Datenübertragungstaktsignal (SYNCLK), ein erstes synchrones Datenübertragungsstoppsignal (SYNSTP1), ein zweites synchrones Datenübertragungsstoppsignal (SYNSTP2), ein Unterbrechungssignal (INT), ein Unterbrechungsbestätigungssignal (INTA), ein Signal HALT und ein Signal UHALT aufweist.A CPU model according to claim 1, which enables the functionalities with the plurality of signals comprising a memory read signal (RD), a memory write signal (WR), an I / O read signal (IORD), an I / O write signal (IOWR), a synchronous data transfer clock signal (SYNCLK), a first synchronous data transfer stop signal (SYNSTP1), a second synchronous data transfer stop signal (SYNSTP2), an interrupt signal (INT), an interrupt acknowledge signal (INTA), a signal HALT and a signal UHALT. CPU-Modell, das den Unterbrechungsmechanismus in Anspruch 1 unterstützt, mit einem Anweisungssatz, der eine Vektornotation und eine Bezugnahme verwendet, die in Anweisungen konsistent verwendet wird, wie zum Beispiel int va für Hardware- und Softwareunterbrechungen und bei Bewegungs-(Laden-speichern-)Anweisungen, wie zum Beispiel m va, r1, was bedeutet, dass der Vektor, der mit va bezeichnet ist, in das Register r1 zu bewegen ist, wobei 'v' die Mnemonik für 'Vektor' ist und 'a' die Vektornummer oder die ID (Identifizierung) ist.A CPU model supporting the interrupt mechanism in claim 1, comprising a set of instructions that uses vector rotation and a reference that is consistently used in instructions, such as int for hardware and software interruptions, and motion (load-store) instructions. ) Instructions, such as m va, r 1 , which means that the vector labeled va is to be moved to register r1, where 'v' is the mnemonics for 'vector' and 'a' is the vector number or the ID (identification) is. CPU-Modell, das den Unterbrechungsmodus und die synchrone Bitbündeldatenübertragung in Anspruch 1 unterstützt, vorbehaltlich dessen, dass jede Anweisung atomar gemacht wird, indem das Anweisungswort bei dem Bit 31 (d31) in der Klein-Endian-Reihenfolge (englisch: Little-Endian ordering) eingestellt wird. Eine Anweisung mit Bit 31 (d31) = 0 wird normal ausgeführt, ist jedoch atomar, wenn das Bit 31 (d31) = 1 ist. Ein Block von Anweisungen mit Bit 31 (d31) = 1 wird daher atomar ausgeführt. Dies beseitigt die Notwendigkeit von explizit atomaren Anweisungen, wie sie in den meisten Prozessoren implementiert sind. Ein Block von Anweisungen kann zusätzlich ebenfalls atomar gemacht werden.CPU model supporting the interrupt mode and synchronous burst data transmission in claim 1, subject to making each instruction atomic by placing the instruction word at bit 31 (d31) in the little-endian ordering ) is set. An instruction with bit 31 (d31) = 0 is executed normally but is atomic if bit 31 (d31) = 1. A block of instructions with bit 31 (d31) = 1 is therefore executed atomically. This eliminates the need for explicit atomic instructions as implemented in most processors. In addition, a block of instructions can also be atomized. CPU-Modell nach Anspruch 1, das eine Gesamtmenge von 256 Arbeitsregistern hat, auf die die CPU-Anweisungen einwirken können. Die Register sind von r0 bis r255 nummeriert und in vier Registersätze unterteilt: a. einen ersten Satz (r0–r15), der aus lokalen 16×32-Bit-Registern für einen Benutzermodus besteht; b. einen zweiten Satz (r16–r31) mit lokalen 16×32-Bit-Registern für globale Benutzermodusregister; c. einen dritten Satz (r32–r47) mit lokalen 16×32-Bit-Registern für den Kernmodus; und d. einen vierten Satz (r48–r255) mit 208×32-Bit-Registern für globale Kernmodusregister und eine Unterbrechungsdienstverwendung.The CPU model of claim 1, having a total of 256 work registers that can be impacted by the CPU instructions. The registers are numbered from r0 to r255 and divided into four sets of registers: a. a first set (r0-r15) consisting of local 16x32 bit registers for a user mode; b. a second set (r16-r31) of local 16x32 bit local user mode register registers; c. a third set (r32-r47) with 16x32 bit local registers for kernel mode; and d. a fourth set (r48-r255) of 208x32-bit global core mode register registers and interrupt service usage. CPU-Modell nach Anspruch 1, bei dem ein Programmierungsmodell folgendes sieht: a. einen Benutzermodus, der in der Lage ist, lediglich Register r0–r31 zu sehen; b. einen Satz von lokalen Benutzermodusregistern (r0–r15); c. einen Satz von Registern (r16–r31) als globale Benutzermodusregister, die über alle Prozesse hinweg unverändert bleiben; d. alle 256 Register ohne ein Bankumschalten in dem Kernmodus und dem Unterbrechungsmodus, was ferner ein Kernmodusprozess ist; e. einen Registersatz r32–r47, der für die lokalen Kernregister reserviert ist; f. einen globalen Benutzermodusregistersatz (r16–r31), der für eine Verwendung bei Weitergabeparametern von dem lokalen Registersatz (r0–r15) reserviert ist.The CPU model of claim 1, wherein a programming model sees: a. a user mode capable of seeing only registers r0-r31; b. a set of local user mode registers (r0-r15); c. a set of registers (r16-r31) as global user mode registers that remain unchanged across all processes; d. all 256 registers without bank switching in the core mode and the interrupt mode, which is further a core mode process; e. a register set r32-r47 reserved for the local core registers; f. a global user mode register set (r16-r31) reserved for use with handoff parameters from the local register set (r0-r15). CPU-Model nach Anspruch 1, bei dem es zwölf CPU-Steuerregister gibt, die für den Programmierer nicht sichtbar sind und notwendig sind, um den aktuellen CPU-Ausführungszustand zu beschreiben, was korrekte Rückgaben auf die vorausgehenden Funktionsaufrufe sicherstellt, wobei diese wie folgt benannt und bezeichnet sind: I. Vier Haupt-CPU-Steuerregister bestehend aus: a. aktuellen Flags/einem aktuellen Status (FS); b. einem aktuellen Rahmen-Stapel-Zeiger (FSP; FSP = Frame-Stack-Pointer); c. einem aktuellen Programmzähler (PC; PC = Programm-Counter); d. und einem zweiten aktuellen Programmzähler (PC1); II. Vier Rahmen-Stapel-Zeiger bestehend aus: a. einem Rahmen-Stapel-Zeiger 1 (FSP1) für einen Benutzerstapel; b. einem Rahmen-Stapel-Zeiger 2 (FSP2) für einen Kernstapel; c. einem Rahmen-Stapel-Zeiger 3 (FSP3) für einen Unterbrechungsstapel; d. und einem Rahmen-Stapel-Zeiger 4 (FSP4) für einen Prozeduraufruf oder für einen Funktionsaufrufstapel; III. Vier Kopien der Haupt-CPU-Steuerregister bei dem Unterbrechungsmodus bestehend aus: a. Unterbrechungs-Flags/-Status (FS-I); b. einem Unterbrechungs-Rahmen-Stapel-Zeiger (FSP-I); c. einem Unterbrechungsprogrammzähler (PC-I); und d. einem zweiten Unterbrechungsprogrammzähler (PC1-I) und wobei auf die zwölf im Vorhergehenden erwähnten CPU-Steuerregister durch Softwareanweisungen mit der Ausnahme des FS-Registers nicht zugegriffen und eingewirkt werden kann und wobei ein Zugriff auf das FS-Register lediglich mit einer Kernmodusanweisung erlaubt ist, die das FS-Register zu den Arbeitsregistern bewegt, wobei dies ist notwendig ist, um die Bits in den Feldern als ein Resultat von internen Hardwarefallen (englisch: traps) auszublenden.The CPU model of claim 1, wherein there are twelve CPU control registers which are not visible to the programmer and necessary to describe the current CPU execution state, ensuring correct returns to the previous function calls, named as follows and denotes: I. Four main CPU control registers consisting of: a. current flags / a current status (FS); b. a current Frame Stack Pointer (FSP); c. a current program counter (PC; PC = program counter); d. and a second current program counter (PC1); II. Four frame stack pointers consisting of: a. a frame stack pointer 1 (FSP1) for a user stack; b. a frame stack pointer 2 (FSP2) for a core stack; c. a frame stack pointer 3 (FSP3) for an interrupt stack; d. and a frame-stack pointer 4 (FSP4) for a procedure call or for a function call stack; III. Four copies of the main CPU control registers in the interrupt mode consisting of: a. Interrupt flags / status (FS-I); b. an interrupt frame stack pointer (FSP-I); c. an interrupt program counter (PC-I); and d. a second interrupt program counter (PC1-I) and wherein the twelve aforementioned CPU control registers can not be accessed and acted upon by software instructions except the FS register and wherein access to the FS register is permitted only with a kernel mode instruction, which moves the FS register to the working registers, this being necessary to fade out the bits in the fields as a result of internal hardware traps. CPU-Modell nach Anspruch 1, bei dem die CPU-Architektur ein natives Rahmenzeiger-(FP-) und Stapelzeiger-(SP)Paar, das mit FP:SP markiert ist, innerhalb eines einzelnen internen CPU-Registers definiert und implementiert, das als das im Vorhergehenden erwähnte FSP bezeichnet ist, wobei FSP als ein 20-Bit-FP und als ein 12-Bit-SP definiert ist und in einem gegebenen FSP-Wort ist der FP von dem Bit 31 bis zu dem Bit 12 oder d31–d12 definiert und da die Adressierung bei dieser CPU-Architektur auf einem 32-Bit-Wort ist, wobei d1 und d0 nicht verwendet werden, kann der SP bis zu 1024 Worte enthalten, was aus dem Registersatz, weitergebenden Parametern und geschobenen Worten besteht und wobei der SP immer ein Versatz zu dem FP ist und wobei immer wenn der SP-Versatz d11–d2 vollständig „1” erreicht, das heißt, 0xfff, eine Hardwarefalle, die eine Unterbrechung zu dem Vektor v254 ist, auftritt und wobei das richtige Bit in dem Fallenwort eingestellt ist.A CPU model according to claim 1, wherein the CPU architecture defines and implements a native frame pointer (FP) and stack pointer (SP) pair marked FP: SP within a single internal CPU register, referred to as FSP is defined as a 20-bit FP and a 12-bit SP, and in a given FSP word, the FP is from bit 31 to bit 12 or d31-d12 Since the addressing in this CPU architecture is on a 32-bit word, where d1 and d0 are not used, the SP can contain up to 1024 words, which consists of the register set, passing parameters and shifted words, and where the SP is always an offset to the FP, and whenever the SP offset d11-d2 reaches "1" completely, that is, 0xfff, a hardware trap which is an interrupt to the vector v254 occurs, and where the correct bit in the Trap word is set. CPU-Modell nach Anspruch 3, das bis zu 128k implementiert, was äquivalent zu 131072 (0x20000) Vektoren von einem Vektor 0 (v0) bis zu einem Vektor 131071 (v0x1ffff) ist, die Zeiger zu Unterbrechungen, Systemaufrufe, Beschreibertabellen und anderes enthalten, die von v0x0 bis v0x1ffff bezeichnet und nummeriert sind, wobei die Vektoren gemäß Modi und dem Zweck unterteilt sind: a. v0 bis v0xff sind Hardwareunterbrechungen in dem Kernmodus zugewiesen; b. v0x100 bis v0x2ff sind Systemaufrufvektoren in dem Kernmodus zugewiesen; c. der Rest v0x300 bis v0x1ffff ist unter den Funktionsaufrufvektoren bei dem Benutzermodus, Beschreibertabellenzeigern für eine Prozess-ID (PID) und einem Prozesssteuerblock (PCB; PCB = Process-Control-Block) aufgeteilt.The CPU model of claim 3 implementing up to 128k, which is equivalent to 131072 (0x20000) vectors from a vector 0 (v0) to a vector 131071 (v0x1ffff) containing pointers to interrupts, system calls, descriptor tables and others, which are designated and numbered from v0x0 to v0x1ffff, the vectors being subdivided according to modes and purpose: a. v0 to v0xff are assigned hardware breaks in kernel mode; b. v0x100 to v0x2ff are assigned system call vectors in kernel mode; c. the remainder v0x300 to v0x1ffff is divided among the function call vectors in the user mode, descriptor table pointers for a process ID (PID), and a process control block (PCB). CPU-Model nach Anspruch 2, wobei das CPU-Modell drei Schnittstellensignale für synchrone Bitbündeldatenübertragungen mit einem synchronen Taktsignal (SYNLCK), einem synchronen Stoppsignal (SYNSTP1) und einem zweiten synchronen Stoppsignal (SYNSTP2) erzeugt und alle Blockübertragungen von einem Datenarray in einem Hauptspeicher von und zu einem Benutzerregistersatz und einem Kernregistersatz Bitbündelübertragungen sind, die die drei im Vorhergehenden erwähnten Übertragungssignale, die durch die CPU gesteuert werden, nutzen und wobei das Signal SYNSTP2 benötigt wird, wenn eine Eingabe-Ausgabe-(E/A-)Übertragung betroffen ist, bei dem dasselbe ein Signal ist, das von der Vorrichtung kommt und wobei ein 32-Bit-Wort bei jedem Übergang des SYNLCK übertragen wird und wobei die Signale SYNCSTP1 und SYNCSTP2 das Ende einer Übertragung angeben.A CPU model according to claim 2, wherein said CPU model generates three synchronous bit burst data interface signals having a synchronous clock signal (SYNLCK), a synchronous stop signal (SYNSTP1) and a second synchronous stop signal (SYNSTP2) and all block transfers from a data array in a main memory of and to a user register set and a core register set are bit stream transmissions utilizing the three above-mentioned transmission signals controlled by the CPU, and wherein the signal SYNSTP2 is required when an input-output (I / O) transmission is concerned, in which it is a signal coming from the device and wherein a 32-bit word is transmitted at each transition of the SYNLCK and wherein the signals SYNCSTP1 and SYNCSTP2 indicate the end of a transmission. CPU-Model nach Anspruch 1, das die synchronen Signale nach Anspruch 2 verwendet und das die Notwendigkeit von mehreren Bus-Zuteilern beseitigt, wobei lediglich ein Hauptbus-Zuteiler mit FIFO verwendet wird und wobei mehrere Busse bei einem System auf einem Chip (SOC; SOC = System-On-Chip) üblicherweise Brücken benötigen, die ihrerseits mehr als einen Bus-Zuteiler erfordern und da die Architektur Brücken eliminiert, ist selbst bei komplexen Entwürfen lediglich ein Zuteiler notwendig.A CPU model according to claim 1, which utilizes the synchronous signals of claim 2 and eliminates the need for multiple bus arrays using only one main bus arbiter with FIFO and wherein a plurality of buses in a system on a chip (SOC; SOC System-on-chip) typically require bridges, which in turn require more than one bus arbiter, and because the architecture eliminates bridges, even a complex arbiter requires only one arbiter. CPU-Model nach Anspruch 1, das die synchronen Signale in Anspruch 2 verwendet und eine DMA-Übertragung ausführen kann, die ein herkömmliches Verfahren unter Verwendung des Signalpaars INT-INTA in Verbindung mit den synchronen Signalen SYNCK, SYNSTP1 und SYNSTP2 nachahmt und wobei dies unter einer CPU-Steuerung vorgenommen wird, ohne den Speicherbus zu sperren und wobei dies zusätzlich zu den herkömmlichen Signalen RD, IORD, WR und IOWR ist.A CPU model according to claim 1, which uses the synchronous signals in claim 2 and is capable of DMA transfer which mimics a conventional method using the pair of signals INT-INTA in connection with the synchronous signals SYNCK, SYNSTP1 and SYNSTP2 CPU control is performed without locking the memory bus and this is in addition to the conventional signals RD, IORD, WR and IOWR. CPU-Model nach Anspruch 1, das die synchronen Signale in Anspruch 2 verwendet und alternativ eine DMA-Übertragung ausführen kann, die ein herkömmliches Verfahren beim Sperren des Speicherbusses durch Verwenden der CPU-Anweisung busd (Bussperrung) nachahmt und wobei dies durch Verwenden des Signalpaars INT-INTA in Verbindung mit den synchronen Signalen SYNCLK, SYNSTP1 und SYNSTP2 zusätzlich zu weiteren zwei Signalen, den Signalen HALT und UHALT, erreicht wird und wobei dies zusätzlich zu den herkömmlichen Signalen RD und WR ist.A CPU model according to claim 1, which uses the synchronous signals in claim 2 and, alternatively, can perform a DMA transfer which mimics a conventional method of locking the memory bus by using the CPU instruction busd (bus inhibit), and by using the signal pair INT-INTA is achieved in conjunction with the synchronous signals SYNCLK, SYNSTP1 and SYNSTP2 in addition to another two signals, the signals HALT and UHALT, and this being in addition to the conventional signals RD and WR. CPU-Modell nach Anspruch 1, das eine E/A-Registerdatei (IOR) implementiert, die aus einem Speicherraum von 1024 Worten besteht, wobei ein Wort 32 Bit gleicht, und auf die durch byteadressierbare 12-Bit-Leitungen A0 bis A11 zugegriffen werden kann und wobei die IOR ein interner mit zwei Ports versehener Lese-Schreib-Speicher ist, dahingehend, dass derselbe verwendet werden kann, um häufig verwendete Variablen zu speichern, und implementiert autonome E/A-Vorrichtungen, wie zum Beispiel Ereigniszahler, einen Echtzeittakt und eine Vorrichtungskonfiguration und wobei dieselbe die Notwendigkeit eines Abfragens umgeht und den Hauptspeicherbuszugriff vermeidet, wobei eine Hardwarefunktion implementiert werden kann, die einen unabhängigen lokalen Bus erfordert, der durch keine CPU-Speicherbustransaktion blockiert wird und wobei die IOR ein Teil des Prozessor-E/A-Adressierungsraums ist, der das Eingabe-/Ausgabe-Lesesignal (IORD) und das Eingabe-/Ausgabe-Schreibsignal (IOWR) beim Zugreifen auf Vorrichtungen, insbesondere einen E/A-Zuteiler-Chip, verwendet und wobei der Unterschied zwischen einer IOR-Adressierung und einem externen E/A-Zugriff darin besteht, dass die IOR immer intern implementiert ist. A CPU model according to claim 1, which implements an I / O register file (IOR) consisting of a 1024-word memory space, one word being equal to 32 bits and accessed by byte-addressable 12-bit lines A0 to A11 and wherein the IOR is an internal two-port read-write memory in that it can be used to store frequently used variables, and implements autonomous I / O devices such as event payers, a real time clock, and a device configuration and bypassing the need for polling and avoiding main memory bus access, where a hardware function may be implemented that requires an independent local bus that is not blocked by any CPU memory bus transaction and where the IOR forms part of the processor I / O Addressing space is the input / output read signal (IORD) and the input / output write signal (IOWR) in accessing Devices, in particular an I / O Allocator chip, and wherein the difference between an IOR addressing and an external I / O access is that the IOR is always internally implemented. CPU-Model nach Anspruch 1, das den Unterbrechungsmodus unterstützt, wodurch auf den Unterbrechungsstapel durch einen Unterbrechungsdienst Bezug genommen wird, mit folgenden CPU-Registern; die aktuellen Haupt-CPU-Steuerregister, die aus FS, FSP, PC und PC1 bestehen, werden jeweils in den folgenden entsprechenden Kopien der Unterbrechungsabspeicherungsregister derselben abgespeichert: a. Unterbrechungs-Flags/-Status (FS-I); b. einem Unterbrechungs-Rahmen-Stapel-Zeiger (FSP-I); c. einem Unterbrechungs-Programmzahler (PC-I); und d. einem zweiten Unterbrechungs-Programmzahler (PC1-I).A CPU model according to claim 1, which supports the interrupt mode, whereby the interrupt stack is referred to by an interrupt service, with following CPU registers; the current main CPU control registers consisting of FS, FSP, PC and PC1 are respectively stored in the following corresponding copies of their interrupt storage registers: a. Interrupt flags / status (FS-I); b. an interrupt frame stack pointer (FSP-I); c. an interrupt program payer (PC-I); and d. a second interrupt program payer (PC1-I).
DE102014111305.5A 2014-08-07 2014-08-07 A processor model that uses a single large linear register, FIFO-based I / O ports supporting new interface signals, and interrupt bus transfers that eliminate DMA, bridges, and an external I / O bus Pending DE102014111305A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102014111305.5A DE102014111305A1 (en) 2014-08-07 2014-08-07 A processor model that uses a single large linear register, FIFO-based I / O ports supporting new interface signals, and interrupt bus transfers that eliminate DMA, bridges, and an external I / O bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014111305.5A DE102014111305A1 (en) 2014-08-07 2014-08-07 A processor model that uses a single large linear register, FIFO-based I / O ports supporting new interface signals, and interrupt bus transfers that eliminate DMA, bridges, and an external I / O bus

Publications (2)

Publication Number Publication Date
DE102014111305A1 true DE102014111305A1 (en) 2016-02-11
DE102014111305A8 DE102014111305A8 (en) 2016-04-07

Family

ID=55134632

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014111305.5A Pending DE102014111305A1 (en) 2014-08-07 2014-08-07 A processor model that uses a single large linear register, FIFO-based I / O ports supporting new interface signals, and interrupt bus transfers that eliminate DMA, bridges, and an external I / O bus

Country Status (1)

Country Link
DE (1) DE102014111305A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108810087A (en) * 2018-04-28 2018-11-13 北京优帆科技有限公司 A kind of connection method of storage server, system and equipment

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3401376A (en) 1965-11-26 1968-09-10 Burroughs Corp Central processor
US3518632A (en) 1966-06-02 1970-06-30 Automatic Telephone & Elect Data processing system utilizing stored instruction program
US4217638A (en) * 1977-05-19 1980-08-12 Tokyo Shibaura Electric Co., Ltd. Data-processing apparatus and method
US4459657A (en) * 1980-09-24 1984-07-10 Tokyo Shibaura Denki Kabushiki Kaisha Data processing system having re-entrant function for subroutines
US6029242A (en) * 1995-08-16 2000-02-22 Sharp Electronics Corporation Data processing system using a shared register bank and a plurality of processors

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3401376A (en) 1965-11-26 1968-09-10 Burroughs Corp Central processor
US3518632A (en) 1966-06-02 1970-06-30 Automatic Telephone & Elect Data processing system utilizing stored instruction program
US4217638A (en) * 1977-05-19 1980-08-12 Tokyo Shibaura Electric Co., Ltd. Data-processing apparatus and method
US4459657A (en) * 1980-09-24 1984-07-10 Tokyo Shibaura Denki Kabushiki Kaisha Data processing system having re-entrant function for subroutines
US6029242A (en) * 1995-08-16 2000-02-22 Sharp Electronics Corporation Data processing system using a shared register bank and a plurality of processors

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
Call stack. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 21.05.2014. URL: http://en.wikipedia.org/w/index.php?title=Call_stack&oldid=609506158 [abgerufen am 16.10.2014] *
CS322 - Operating Systems and Computer Architecture; Lecture: Hardware Requirements for Modern Operating Systems; 2000, S. 1 – 3. URL: http://www.math-cs.gordon.edu/courses/cs322/lectures/hardware.html, Archiviert in http://www.archive.org am 10.01.2008 [abgerufen am 15.10.2024]
CS322 - Operating Systems and Computer Architecture; Lecture: Hardware Requirements for Modern Operating Systems; 2000, S. 1 - 3. URL: http://www.math-cs.gordon.edu/courses/cs322/lectures/hardware.html, Archiviert in http://www.archive.org am 10.01.2008 [abgerufen am 15.10.2024] *
Intel: Intel Architecture Software Developer's Manual - Volume 2 - Instruction Set Reference, 1999. S. i,ii,vi,2-1,3-367 - 3-368. URL: https://www.cs.cmu.edu/~410/doc/intel-isr.pdf [abgerufen am 16.10.2014] *
Proenca, AJ: Zusammenfassung für Vorlesung "Computer Architecture" zu Buch "Computer Organization and Architecture - Designing for Performance", 2006. URL Vorlesung: http://gec.di.uminho.pt/Discip/Mcc/ac0405/apoio.html [abgerufen am 13.10.2014], URL Zusammenfasung: http://brahms.di.uminho.pt/discip/MaisAC/COA5e_Stallings/ResumoCOA5e_Stallings.pdf [abgerufen am 13.10.2014] *
Register window. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 24.07.2014. URL: http://en.wikipedia.org/w/index.php?title=Register_window&oldid=618326898 [abgerufen am 13.10.2014] *
Vectored Interrupt. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 16.07.2014. URL: http://en.wikipedia.org/w/index.php?title=Vectored_Interrupt&oldid=617130557 [abgerufen am 13.10.2014] *
Williams, J. and Bergmann, N.: Programmable parallel coprocessor architectures for reconfigurable system-on-chip. IEEE International Conference on Field-Programmable Technology, 2004 (Proceedings). USA : IEEE, 2004. S. 193-200. - ISBN 0-7803-8651-5. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=139326 [abgerufen am 13.10.2014] *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108810087A (en) * 2018-04-28 2018-11-13 北京优帆科技有限公司 A kind of connection method of storage server, system and equipment
CN108810087B (en) * 2018-04-28 2020-06-26 北京青云科技股份有限公司 Connection method, system and equipment of storage server

Also Published As

Publication number Publication date
DE102014111305A8 (en) 2016-04-07

Similar Documents

Publication Publication Date Title
DE112005000706B4 (en) Method and system for providing user-level multi-threading
DE602004012106T2 (en) Multi-channel DMA with shared FIFO buffer
DE102018130441A1 (en) Equipment, methods and systems with configurable spatial accelerator
DE112013004751T5 (en) Multi-core processor, shared core extension logic, and shared core extension usage commands
DE102018213430A1 (en) Accelerator with low latency
DE60132633T2 (en) DIGITAL SIGNAL PROCESSOR DEVICE
DE102015002582A1 (en) Cross-Architecture Compatibility Module to allow a code module of one architecture to use a library module of a different architecture
DE112017001825T5 (en) PROCESSORS, METHODS, SYSTEMS AND INSTRUCTIONS FOR ATOMICALLY SAVING DATA WIDER THAN A NATIVELY SUPPORTED DATA WIDTH IN A MEMORY
DE102014003399A1 (en) Systems and methods for implementing transactional memory
DE112010005821T5 (en) context switching
DE112017003340T5 (en) INTERRUPTABLE AND RESTORABLE MATRIX MULTIPLICATION INSTRUCTIONS, PROCESSORS, METHODS, AND SYSTEMS
DE102015102135A1 (en) Interruptible exclusive storage
DE102014003671A1 (en) PROCESSORS, METHODS AND SYSTEMS FOR RELAXING THE SYNCHRONIZATION OF ACCESS TO A SHARED MEMORY
DE202016009016U1 (en) Commands and logic for recurring adjacent collections
DE102012221502A1 (en) A system and method for performing crafted memory access operations
DE102014003799A1 (en) Systems and methods for transfer elimination with bypass multiple instantiation table
DE112013005368T5 (en) PROCESSORS, METHODS AND SYSTEMS FOR REAL-TIME COMMAND TRACKING
DE112013003741T5 (en) Systems, devices and methods for performing conflict detection and transferring contents of one register to data element locations of another register
DE112017001716T5 (en) MEMORY COMMANDS, PROCESSORS, METHODS AND SYSTEMS
DE102016006402A1 (en) PERSISTENT COMMIT PROCESSORS, PROCEDURES, SYSTEMS AND COMMANDS
DE102018132521A1 (en) DEVICE AND METHOD FOR LOADING AND REDUCING LOOPS IN A SINGLE INSTRUCTION, MULTIPLE DATA (SIMD) PIPELINE
DE2612054A1 (en) PROCEDURE FOR ADDRESS DEVELOPMENT AND PROCESSOR FOR IMPLEMENTING THE PROCEDURE
DE112013004800T5 (en) Bit shift instruction to the left, pulling ones to lower bits
DE102018002525A1 (en) HYBRIDATOMARITY ASSISTANCE FOR A BINARY TRANSLATION-BASED MICROPROCESSOR
US9910801B2 (en) Processor model using a single large linear registers, with new interfacing signals supporting FIFO-base I/O ports, and interrupt-driven burst transfers eliminating DMA, bridges, and external I/O bus

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R016 Response to examination communication
R082 Change of representative

Representative=s name: KUHNEN & WACKER PATENT- UND RECHTSANWALTSBUERO, DE