WO2008006622A1 - Netzwerksystem und verfahren zur steuerung parallel existierender adressräume - Google Patents

Netzwerksystem und verfahren zur steuerung parallel existierender adressräume Download PDF

Info

Publication number
WO2008006622A1
WO2008006622A1 PCT/EP2007/006297 EP2007006297W WO2008006622A1 WO 2008006622 A1 WO2008006622 A1 WO 2008006622A1 EP 2007006297 W EP2007006297 W EP 2007006297W WO 2008006622 A1 WO2008006622 A1 WO 2008006622A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
network
network element
address
physical
Prior art date
Application number
PCT/EP2007/006297
Other languages
English (en)
French (fr)
Inventor
Carsten Lojewski
Original Assignee
Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.
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 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. filed Critical Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.
Priority to EP07786099A priority Critical patent/EP2041659A1/de
Priority to US12/309,270 priority patent/US20100017802A1/en
Publication of WO2008006622A1 publication Critical patent/WO2008006622A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems

Definitions

  • the present invention relates to a network system having a plurality of network elements connected via network connections, and to a method for controlling parallel existing address spaces.
  • Such network systems and methods are needed to efficiently organize distributed feeds over network connections, particularly to speed memory access in parallel distributed computing.
  • the present invention relates to distributed memory access control, particularly by concurrent applications (parallel distributed applications running applications on multiple discrete units, such as PCs, in parallel) while combining these distributed memories to accommodate the applications provide remote direct memory access (RDMA) efficiently.
  • concurrent applications parallel distributed applications running applications on multiple discrete units, such as PCs, in parallel
  • RDMA remote direct memory access
  • a virtual address is an abstracted address insofar as it may differ from the hardware-related physical address of the memory location.
  • an address range in the present application is an address specification consisting of the address of the first memory location to be addressed in conjunction with the length (number of bits or bytes or the like) of the memory to be addressed.
  • linear address space is understood below to refer to a memory area that can be addressed linearly by various offsets (starting from the start address with an offset equal to zero) starting at a defined starting address.
  • a machine is understood below to mean a program part (software) and a hardware part (fixed interconnection or wiring), which solves a specific task. Overall, such a machine acts like a technical machine and thus represents an implementation of a technical machine encompassing a software component.
  • An instance of such a machine (which likewise comprises a program part and a hardware part) is a unit or a component, which executes or solves a specific task locally (in a network element).
  • the access to individual local or remote memory locations basically takes place on the basis of locally calculated addresses.
  • DMA direct memory access
  • PC expansion cards interfaces
  • DMA hardware direct memory access hardware
  • the arithmetic unit A informs the arithmetic unit B that data is to be communicated. Then the arithmetic unit A temporarily allocates a communication memory VA and copies the data to be communicated into this memory. Then, the arithmetic unit A transmits to the arithmetic unit B the size of the required memory. Subsequently, the arithmetic unit B temporarily allocates a communication memory VB having this required size. Then the arithmetic unit B informs the arithmetic unit A that the temporarily allocated memory is ready. Subsequently, the data exchange takes place. After the data has been exchanged and the data communicated has been used, the temporarily allocated memory areas are released again.
  • Such a procedure requires a large number of communication links and votes between the participating computing units. Such a memory access can thereby only lent be carried out between individual communication pairs of two arithmetic units.
  • a further disadvantage is that a complex communication library must be made available and that communication memory VA and VB must again be temporarily made available for each communication to be carried out.
  • the disadvantage is that the arithmetic units of the arithmetic units themselves are involved in the data exchange (eg copying of the user data into the temporary communication buffer).
  • a parallel application here describes the entirety of all time-parallel-running computation programs with execution path (s) which, taken together via a network, can be used together to process input data.
  • the individual computer programs are executed on physically separate arithmetic units with their own memory (arithmetic units of the network elements). Therefore, one speaks of parallel applications on distributed memory (distributed memory computing).
  • the key idea in the present invention is that for efficient and consistent organization of the access of an application to distributed memory in distributed network elements at least one a priori (i.e., at the latest at the application start or immediately after) in each of the involved network elements
  • Part of the physical system memory normally available for computation is permanently reserved (i.e., over the entire life of that application) for data exchange with other network elements exclusively for that application.
  • An exclusive reservation of a local physical memory area for the application is understood to mean that this local memory area is separated so that it is henceforth available exclusively for said application, ie that other applications and the operating system no longer have access rights to this physical memory area have and / or can acquire.
  • the memory areas reserved locally in the individual network elements are combined as described in more detail below in a globally permanently usable physical communication and computing memory in that the individual network elements contain information (eg start address and length of the reserved area or memory) Address range) via or for identifying the locally reserved physical memory areas. Replacing each other here means that each network element involved participates with each other
  • Network element such an exchange of information takes (involved in this case are usually all network elements of the network system).
  • a global virtual address space (global VM memory area) is opened by constructing the global virtual addresses of this address space in such a way that each global virtual address contains information that uniquely defines a network element (eg number of the network element ) and a unique physical memory address located on this network element information (eg, the address information of the physical memory location itself) includes.
  • This global VM memory area can then be used by the application for direct communication (instantaneous data exchange between the network elements, ie, virtually without address translation virtually to physical) using DMA hardware by using the global virtual addresses as access addresses.
  • the application thus uses global virtual addresses for a DMA call: This is made possible by the fact that the global VM memory area is faded into the virtual address space of the application (this is the virtual address space provided by the operating system to the application). How such an insertion can take place is known to the person skilled in the art (eg MMAP).
  • MMAP virtual address space provided by the operating system to the application. How such an insertion can take place is known to the person skilled in the art (eg MMAP).
  • MMAP virtual address space provided by the operating system to the application. How such an insertion can take place is known to the person skilled in the art (eg MMAP).
  • MMAP virtual address space provided by the operating system to the application
  • the locally provided physical system memory of a network element may comprise, for example, a memory accessible via a system bus of the network element (eg PC), but it is also possible for this physical system memory to be stored on a separate card (eg PCI-E card) includes provided memory (card memory).
  • a shared virtual machine is installed on the involved network elements. This includes program parts (software) and hardwired parts (hardware) on the network elements and performs the functions described below.
  • the virtual machine consists of a multiplicity of instances (local program sections and local hardware elements), wherein in each network element an instance, the so-called VM instance, which then in each case a program part (local VM interface library) and a hardware part (local VM hardware interface) is installed.
  • the VM instance allocates in the local memory of the respective network element the above-described local physical memory area to be reserved for the virtual machine (and via this the application) after exchanging the above-described information in the form of the global VM memory area Is made available. Allckatiori can be done either by the local VM interface library at runtime of the application, or by the local VM hardware interface at boot time or during the boot process.
  • the global virtual addresses are for each of the storage locations within the global VM storage area unique. By means of such a global virtual VM address, any desired memory location within the global VM memory area can then be addressed uniquely by each of the VM instances, provided that this instance has previously been granted corresponding access rights.
  • the local VM instances thus form together, optionally together with local and global operations (for example, common global atomic
  • the present invention forms two parallel, independent address spaces: a first address space, which is managed by the operating system as usual, and another, second, address space managed by the local VM instances.
  • the second address space is exclusively available to one application (possibly also several applications) with the help of the local VM instances.
  • computing units come into question in this case. ge, which have their own arithmetic unit and an associated memory (eg PCs).
  • network connections for example Internet connections or other LAN connections or also WLAN connections, to mutually coupled storage units that do not have their own computing units in the true sense.
  • the memory unit itself has the required microprocessor capacity for installing a VM instance, or that such a VM instance is installed in an RDMA interface (network card with remote direct memory acess) can.
  • the virtual machine optimizes the data communication and also monitors the parallel processes of the individual instances. If a parallel application (which is executed on all local network elements) accesses the global VM memory area by means of a DMA call, the required source and destination addresses are retrieved from the corresponding local VM instance (this is the VM instance of the local VM). network element in which the application initiates a data exchange) is calculated as follows:
  • the (global virtual) source address results from a simple offset computation according to the address translation defined by the fade-in of the global VM memory rhs into the virtual address space of the application (the offset is equal to the difference) the start address of the local physical area and the start address of the corresponding displayed area, first type of offset calculation). If the (local) VM instance now accesses the (global virtual) destination address, the instance first checks whether the destination address lies within its own (local) network element. Is this the
  • the destination address is calculated by the VM instance analogously to the source address (see above). Otherwise, if the number of the network element does not correspond to the number of the network element of the accessing VM instance, the destination address likewise results from an offset calculation, whereby the offset here, however, results from the difference between the start addresses of the reserved physical memory areas of the local network element and the affected remote network element results in a second type of offset calculation (ie access to the local physical memory area of the affected remote network unit via the global virtual address, in which case the affected remote network unit is that network element which is assigned by the network in the respective global VM). Address contained information for identification of the associated network element, that is, for example, the number of the network element is set). Subsequently, data exchange takes place in both cases by means of hardware-parallel DMA.
  • the global virtual address is a 2-tuple which, as the first information element, for example, the globally unique MAC address of the network element, is physically allocated in the memory, and as the second information element a physical memory address within this
  • a direct access of each VM instance to a defined memory location within the global virtual address space is possible.
  • LBU global LBU cache
  • LBU load balancing unit
  • the cache network element informs all other network elements of its property of being the cache network element (as well as its network element number) by means of a service provided by the virtual machine (global operation).
  • a log is stored in the global LBU memory, in which it is noted which LBUs are currently located on which network elements.
  • the protocol notes for all LBUs in which network element they are currently located and where they are located in the local physical memory. For this, the protocol becomes the
  • Each LBU communication is thus recorded in the log.
  • the protocol may take the form of an n-associative tag, for example. belle, where each table entry consists of the following information: globally unique LBU number, number of the network element on which the associated LBU is currently stored, and physical memory address at which the LBU is physically located
  • the application of a network element wants to access an LBU, it first asks the cache network element whether the number of the requested LBU is currently in the log (eg, this LBU recently from one of the network elements from its local hard drive to the LBU reserved local physical memory had been loaded), that is accessible via the reserved physical memory of the local or one of the remote network elements.
  • Memory area are available, so a DMA access to this data can be done (which, for example, avoids local or remote disk access).
  • a global validity of cache data can thus be guaranteed by the cache network element. Overall, this will accelerate access to the in the global virtual address space stored data possible.
  • arithmetic units as network elements, therefore, an instance of the virtual machine is started on each of the arithmetic units. This then divides the main memory present in a network element into two separate address ranges. These areas correspond, on the one hand, to the locally reserved physical memory area of the virtual machine, which is exclusively made available to the global virtual memory area, and to the remaining local physical memory, which is still managed by the operating system.
  • the classification can be made at system start, be controlled by an application at runtime, or specified by the operating system itself.
  • VM cache allocated globally for each VM instance. For example, each VM instance can be allowed access to these memory areas or only to a part of the VM instances.
  • all the participating VM instances exchange information about their local memory areas reserved for the global VM memory (for example, by means of multicast or broadcast).
  • a LUT structure look up table structure
  • the conversion of the local physical addresses into and out of global virtual VM addresses takes place within the local VM instances.
  • the advantage of the present invention is in particular the use of several (two) different address spaces.
  • the first address space corresponds to the global VM memory area in a distributed memory system, where DMA operations of parallel applications can be performed efficiently.
  • the second address space corresponds to an address space existing parallel to and independent of the VM memory area, which is managed by the local operating systems and which thus represents a memory model as in cluster computing (distributed memory computation).
  • An application-oriented, global cache that is centrally managed by just one cache network element
  • LBU cache can be used as a global usable server. vice provided by the virtual machine. This enables efficient communication even with application problems that require a larger memory requirement than that provided by the global VM memory area.
  • the present invention can be used in particular on parallel or non-parallel systems, in particular with a plurality of arithmetic units connected to one another via networks for parallel or else non-parallel applications.
  • deployment is also possible with multiple distributed storage units if each storage subsystem has a device that allows remote access to that storage.
  • mixed systems that do not operate in parallel, but have the memory distributed among various network elements, are suitable for the practice of the present invention.
  • FIG. 1 shows a conservative system architecture
  • Figure 2 shows the logical structure of a network system according to the invention with two network elements 2a and 2b;
  • FIG. 3 shows the individual levels of a network system according to the invention
  • Figure 4 shows the structure of the hardware interface a
  • FIG. 5 the global virtual address space or the global VM memory area
  • FIG. 6 shows the address space of a parallel application
  • FIG. 7 shows the memory allocation in two network elements and the offset calculation for calculating a destination address for a DMA access.
  • Figure 1 shows a conservative system architecture as known in the art.
  • the figure shows how in conventional systems an application (for example also a parallel application) can access hardware (for example a physical memory).
  • an application for example also a parallel application
  • hardware for example a physical memory.
  • FIG. 1 for this purpose, for example in a network element, generally three different planes (here
  • the application level on which the parallel application runs for example the underlying operating system level or hardware abstraction level are realized as a software solution 35.
  • the physical level on which lain hardware components are located.
  • the application can access the hardware via the operating system or the services provided by the operating system.
  • a hardware abstraction layer (HAL) is provided (for example drivers or the like) via which the operating system can access the physical level or hardware level, ie, for example, calculated data of the application can write a physical memory.
  • HAL hardware abstraction layer
  • FIG. 2 now shows the basic structure of a network system according to the present invention.
  • This has two network elements 2a, 2b in the form of computing units (PCs), each having a local physical memory 5a and 5b. From this local memory, a part 10a, 10b is reserved for global use by the virtual machine as a global virtual memory area by the instance of the virtual machine installed on the network element.
  • the reference numeral 10 is alternatively used for a physical memory separated by a VM instance or for the part of the global virtual memory area corresponding to that memory. It will be apparent to the person skilled in the art from the context what is meant in each case.
  • the instances of the virtual machine installed on the respective arithmetic units r RP7iin ⁇ 37e l r l hp ⁇ i 1 9 ai ⁇ nH 1 QVi Vie »- are, manage this memory 10a, 10b.
  • the physical memory 5 is thus divided into local memories 9a, 9b, which is managed by the operating system and can be additionally made available to a specific application (as well as other applications), and global VM memory 10a, 10b, which is made available exclusively to the specific (parallel) application and is no longer visible to the operating system.
  • the number of network elements or computing units can of course be generalized to any number.
  • Each of the arithmetic units 2a and 2b has here, in addition to its main memory 5a, 5b one or more arithmetic O w a ⁇ -V-> sa -i t- e-r ⁇ m ⁇ -t-rieni Hannh ono i - rather 5a together.
  • Each arithmetic unit 2a, 2b here also has a DMA-capable interface at the hardware level. These interfaces are connected to a network through which all computing units can communicate with each other. An instance of a virtual machine is now installed on each of these arithmetic units 2a, 2b, with the local VM instances exclusively reserving the local physical memories as described above, spanning the global VM memory, and thereby the
  • the network is also DMA-capable, since it then carries out the data transport between the two arithmetic units 2 a and 2 b via the DMA network interfaces of the network elements.
  • the DMA-capable network has the following parameters:
  • the data exchange between the main memories is hardware-parallel, i. the DMA controller and the network operate independently and not programmatically;
  • the accesses to the memories take place without the intervention of the arithmetic units;
  • the data transports can be carried out asynchronously-non-blocking;
  • advantageously parallel applications in the network system 1 may be asynchronous to the global VM interface.
  • the current state of the read and write operation can be queried by the virtual machine at any time.
  • the access bandwidth is limited to remote storage areas, ie
  • the calculation unit 2a further increases the memory area b of the arithmetic unit 2b by defining a global cache memory area as described above (eg, the network element 2a is set as the cache network element).
  • the local VM instances organize the necessary requests and / or accesses to the protocol in the cache network element.
  • the global cache area is thus organized by the virtual machine. For example, it can also be organized as FIFO (First In First Out) or as LRU (Least Recently Used) storage area to cache asynchronously requested data.
  • FIFO First In First Out
  • LRU Least Recently Used
  • the cache space is transparent to each of the applications that the virtual machine uses because it is managed and controlled by the virtual machine.
  • a part of the main memory 5a, 5b as local memory is still available to all applications on the arithmetic units 2a, 2b locally as usual.
  • This local storage is not visible to the virtual machine (separate address spaces) and thus can be used locally elsewhere.
  • this 2-tuple is composed of two information elements, the first element resulting from the network address (in particular worldwide unique MAC address) of the local processing unit 2a, 2b and the second element resulting from a physical address within the address space of this network element ,
  • This 2-tuple thus indicates whether the physical memory belonging to the global virtual address is located within the arithmetic unit itself on which the application is running and which wishes to access this memory area, or in a remote memory area in a remote arithmetic unit is. If the associated physical address is present locally on the accessing arithmetic unit, the memory is accessed directly according to the first type of offset calculation as described above.
  • the local VM instance installed on the arithmetic unit 5a locally performs the second type of offset calculation as described above and initiates a DMA call with corresponding source and destination address.
  • the calculation of the addresses on the remote arithmetic unit 5b is carried out here WIR in more detail below about the 2-tuple of the global virtual address by means of an access to a look-up table.
  • control passes to the DMA hardware, in this case RDMA hardware.
  • the arithmetic units are then Units 5 are no longer involved and can take on other tasks, such as local applications or hardware-parallel calculations.
  • the present invention combines a shared memory machine with the advantages of distributed memory topology.
  • the present invention can also be used by simple replacement of the computing units 2a, 2b by memory units in network systems in which individual memory units are connected to one another via network connections. These storage devices do not have to be part of computing units. It is sufficient if these memory units have devices that allow RDMA access to these memory units. This then also allows the use of coupled via network connections storage units within a system in which, if necessary. there is only one processing unit left or in systems where the virtual machine merely takes over the organization of several distributed storage units.
  • FIG 3 now shows the parallel address space architecture and the various levels (software level and hardware level) as formed in the present invention.
  • the figure shows this a single network element 2a, which is formed as described above.
  • Corresponding further network elements which are connected to the network element 2a via a network are then likewise designed (the parallel specific application AW, which transmits the global data via the virtual machine or the local VM instances)
  • VM storage area runs on all network elements. 2).
  • a first address space (global VM memory area), which is displayed in the virtual address space of the application AW, and thus is available to the application as a global virtual address space: the application AW (It can of course also be multiple applications) can thus directly on the global virtual addresses of the VM memory area, ie by means of DMA calls to the physical level hardware, i. accessing the physical memory reserved locally for the global VM storage area (referred to herein as VM storage 10).
  • the individual application operates at the operating system level with the aid of the local VM instance and has exclusive access to the VM hardware, in particular to that of the VM server.
  • the local VM instance 12 in the present case comprises a VM software library 12-1 at the operating system level and a VM hardware interface 12-2 at the physical level / hardware level.
  • the local address space Parallel to the VM memory area or address space and separate therefrom, there is another, second address space: the local address space. While the VM address space is managed by the virtual machine or the local VM instance 12 and thus is not visible to the operating system BS, as well as to other applications not operating with the VM instances this additional, second address space is managed by default by the operating system BS. As with the conservative system architecture (FIG. 1), the operating system BS can additionally make the physical memory of the system memory 5 corresponding to this second address space 9 available to the specific application AW via the hardware abstraction level HAL. The application thus has the ability to access both separate address spaces. However, other applications not organized via the virtual machine can only access the system memory area 9 or the first address space via the operating system.
  • FIG. 4 now shows an example of a structure of the
  • the VM hardware interfaces 12-2 from FIG. 3.
  • This hardware part of the VM instance 12 here consists of the components central processor, DMA controller, network interface and optional local map memory.
  • the VM hardware interface unit 12-2 is realized in the present case as a plug-in card on a bus system (eg PCI, PCI-X PCI-E, AGP).
  • the local map memory 13 optionally optionally provided here, as well as the VM memory 10 (which is here associated with physical memory on the motherboard or motherboard) of the application AW can be made available as part of the global VM memory area (the only one The difference between the local map memory 13 and the VM memory area 10 is thus that the corresponding physical memory units are arranged on different physical elements).
  • the VM hardware interface 12-2 can also be implemented as an independent system board.
  • the VM hardware interface 12-2 is capable of being assigned to it Manage system memory independently.
  • FIG. 5 outlines the configuration of the global VM memory area or address space of the network system 1 according to the invention spanning the various local network elements 2.
  • the individual local VM instances in the individual network elements exchange information with each other before recording any data communication. Interchangeable here means that each participating via their VM instance 12 on the network system 1 network element 2 with each other network element 2 exchanges the corresponding information.
  • the exchanged information in the present case is also coded as a 2-tuple
  • the first element of the 2-tuple contains a unique number (eg MAC address) of one network element 2 involved within the network system 1 of one connected to other network elements via the Internet PCs
  • the second element of the 2-tuple contains the start address and the length of the physical memory area reserved in this network element (or information about the corresponding address area).
  • the global VM address space can be spanned, which can then be used without additional address conversions for the DMA controller communication.
  • the global address space is made available to the locally running applications by means of the respective local VM instance.
  • FIG. 6 outlines the insertion of the global VM memory area into the virtual address space of the specific application AW, which is the prerequisite for using the global virtual addresses for is a DMA call via a VM instance 12 by the application AW.
  • FIG. 6 thus shows the address space of the application AW which, via the respective VM software libraries 12-1, inserts or mappes the address areas provided by the VM hardware interfaces 12-2 into its virtual address space.
  • the overall virtual address space of the application AW is, as usual, much larger than the global VM memory area displayed.
  • the local physical memory additionally usable by the application via the operating system BS, which was not reserved for the virtual machine, is drawn here (mapped local memory 9).
  • the global virtual address space or global VM memory area of the application is available only after initialization of the VM instances and the above-described exchange of information for the DMA communication.
  • at least one subarea is separated locally, ie as an exclusively reserved physical memory area, by each participating VM instance 12.
  • This allocation can be either from the VM interface library 12-1 at runtime the application, or before that time, by the VM hardware Interface 12-2 at system boot time or during bootup. If this reservation has taken place, then the individual VM instances of the individual network elements exchange among themselves the necessary information (start address and length of the reserved area) via the locally reserved physical memory areas.
  • a memory allocation is realized in which the global VM memory area usable by the application AW is assigned a linear physical address space which can be used directly for DMA operations with source and destination address and data length.
  • This address space can be addressed directly from an application via a memory image (memory mapping in the virtual address space of the application) or via the VM instance.
  • FIG. 7 shows, using the simple example of two network elements 2a and 2b, how in each of these network elements locally physical memory for the global VM memory area is reserved and, as in a later memory access by the VM instance of a local network element (network element 2a) Remote network element (network element 2b) takes place the calculation of the destination address for the immediate DMA call.
  • the network element 2a and the network element 2b each provide a physical memory area 5a, 5b (main memory).
  • the network element number "0" of the element 2a and the network element number “1” of the element 2b are shown (these two numbers are mutually exchanged as the first information element of the information 2 tuple between the two network elements 2a and 2b). If, for example, a global virtual address starts with "0”, then the VM instance of the network element 2a knows that the associated physical memory location can be found in this network element. If it starts with "1”, then the VM instance of the network element 2a knows in that the associated physical storage location can be found in the remote network element 2b.
  • the destination address for a DMA access of the element 2a to the physical memory of the element 2b is calculated as follows: Through the exchanged information, the unit 2a knows about the difference of the physical starting addresses S 0 and Si.
  • the Offset Off is simply added to a (local) physical address normally addressed by an application to access the correct physical storage location of the remote network element (linear mapping between the global VM area and the local allocated physical memory areas). Since it can not be ensured that all network elements can reserve physical memory at matching start addresses S with the same length L, an exchange of this information among the network elements is necessary. Effective is an exchange via broadcast or multicast over the DMA network. Each network element can then read the information of the other network elements within the VN and build up an LUT structure (see table), via which the spanned global address space can be addressed by simple local calculations (offset calculations).
  • Network element number 2-tuple (start address, length) Start address Length

Abstract

Die vorliegende Erfindung betrifft ein Netzwerksystem mit einer Vielzahl von über Netzwerkverbindungen verbundener Netzelemente sowie ein Verfahren zur Steuerung parallel existierender Adressräume. Derartige Netzwerksysteme und Verfahren werden benötigt, um über Netzwerkverbindungen verbundene verteilte Speicher effizient zu organisieren, insbesondere um den Speicherzugriff bei parallelem verteiltem Computing zu beschleunigen.

Description

Netzwerksystem und Verfahren zur Steuerung parallel existierender Adressräume
Die vorliegende Erfindung betrifft ein Netzwerksystem mit einer Vielzahl von über Netzwerkverbindungen verbundener Netzelemente sowie ein Verfahren zur Steuerung parallel existierender Adressräume. Derartige Netzwerksysteme und Verfahren werden benötigt, um ü- ber Netzwerkverbindungen verbundene verteilte Spei- eher effizient zu organisieren, insbesondere um den Speicherzugriff bei parallelem verteiltem Computing zu beschleunigen.
Die vorliegende Erfindung betrifft insbesondere die Zugriffsteuerung auf verteilte Speicher, insbesondere durch parallel laufende Anwendungen (parallel verteilte Anwendungen, bei denen Anwendungen auf mehreren getrennten Einheiten, wie z.B. PCs, parallel abgearbeitet werden) und dabei die Vereinigung dieser verteilten Speicher, um sie den Anwendungen durch entfernte Direktspeicherzugriffe (RDMA, engl, remote direct memory access) effizient zur Verfügung zu stellen.
Als virtueller Speicher bzw. virtuelle Speicheradresse werden Speicher verstanden, die unter einer abstrahierten Adresse angesprochen werden. Eine virtuelle Adresse ist insofern eine abstrahierte Adresse, die sich von der hardwareseitigen physikalischen Ad- resse der Speicherstelle unterscheiden kann. Weiterhin wird unter einem Adressbereich in der vorliegenden Anmeldung eine Adressangabe bestehend aus der Adresse der ersten anzusprechenden Speicherstelle in Verbindung mit der Länge (Anzahl von Bits oder Bytes oder dergleichen) des anzusprechenden Speichers verstanden.
Unter dem Begriff eines linearen Adressraums wird im Folgenden eine Abbildung auf einen Speicherbereich verstanden, der ab einer definierten Startadresse linear durch verschiedene Offsets (beginnend ab der Startadresse mit Offset gleich Null) angesprochen werden kann.
Unter einer Maschine wird im Folgenden ein einen Programmteil (Software) und einen Hardwareteil (feste Verschaltung bzw. Verdrahtung) umfassendes Element verstanden, welches eine bestimmte Aufgabe löst. Eine solche Maschine agiert insgesamt gesehen wie eine technische Maschine und ctcllt somit eine einen SofL- wareanteil umfassende Implementierung einer technischen Maschine dar. Eine Instanz einer derartigen Maschine (welche ebenfalls einen Programmteil und einen Hardwareteil umfasst) ist eine Einheit bzw. ein Be- standteil, der lokal (in einem Netzwerkelement) eine bestimmte Aufgabe ausführt bzw. löst. Im Folgenden wird weiterhin davon ausgegangen, dass der Zugriff auf einzelne lokale oder entfernte Speicherstellen grundsätzlich auf der Basis lokal berech- neter Adressen erfolgt.
Der Fortschritt im Bereich der Netzwerktechnik ermöglicht es, heutzutage auch entfernte Speicherbereiche, beispielsweise über Netzwerkverbindungen verbundene Speicherbereiche mit hohen Bandbreiten anzusprechen. Aus dem Stand der Technik sind bereits DMA (DMA = engl, direct memory access) fähige Netzwerkelemente bekannt. Sie nutzen z. B. PC-Erweiterungskarten (Schnittstellen) , die über eine Direktspeicher- zugriff-Hardware (DMA-Hardware) lokale oder entfernte Speicherbereiche lesen und schreiben können. Dieser Datenaustausch erfolgt einseitig, also ohne zusätzlichen Austausch von Adressangaben.
Grundsätzlich ist es dadurch möglich, einzelne Recheneinheiten, z.B. einzelne Personal Computer (PC), beispielsweise auch mit mehreren Multicore-Prozes- soren zu einem leistungsfähigen Parallelrechner zu verbinden. In einem solchen Falle spricht man von ei- ner schwach gekoppelten, verteilten Speicher-Topolo- gie (distributed memory System) , da die entfernten Speicherbereiche lediglich über Netzwerkverbindungen statt über herkömmliche Busverbindungen miteinander verknüpft sind.
In einem solchen Falle einer schwach gekoppelten verteilten Speicher-Topologie ist es erforderlich, ein Kommunikationsnetzwerk aufzusetzen, welches einen Datenaustausch zwischen den Kommunikationspartnern erst ermöglicht. Nach dem Stand der Technik wird hierzu die gesamte Hardware einer Recheneinheit durch das Betriebssystem virtualisiert und einer Anwendung über Software- Schnittstellen zur Verfügung gestellt. Der Zugriff einer Anwendung auf einen solchen lokalen, virtuali- sierten Speicher und die damit verbundene Umrechnung erfolgt üblicherweise durch das Betriebssystem. Will eine Anwendung auf einen entfernten Speicherbereich zugreifen (lesen oder schreiben) , so wird dies durch Kommunikationsbibliotheken realisiert, also über spezielle Kommunikationsspeicher.
Der Zugriff einer Recheneinheit A auf eine Recheneinheit B bzw. deren Speicher erfolgt dabei stets über ein mehrstufiges Kommunikationsprotokoll:
Zuerst informiert die Recheneinheit A die Recheneinheit B, dass Daten zu kommunizieren sind. Sodann al- lokiert die Recheneinheit A temporär einen Kommunika- tionsspeicher VA und kopiert die zu kommunizierenden Daten in diesen Speicher. Dann wird von der Recheneinheit A an die Recheneinheit B die Größe des erforderlichen Speichers übermittelt. Hierauf allokiert die Recheneinheit B temporär einen Kommunikations- Speicher VB mit dieser erforderlichen Größe. Daraufhin informiert die Recheneinheit B die Recheneinheit A darüber, dass der temporär allokierte Speicher bereitsteht. Im Anschluss erfolgt der Datenaustausch. Nach erfolgtem Datenaustausch und erfolgter Verwen- düng der kommunizierten Da.ten v/erden die temporär al- lokierten Speicherbereiche wieder freigegeben.
Wie zu erkennen ist, erfordert ein derartiges Vorgehen eine Vielzahl von Kommunikationsverbindungen und Abstimmungen zwischen den beteiligten Recheneinheiten. Ein derartiger Speicherzugriff kann dabei ledig- lieh zwischen einzelnen Kommunikationspaaren von jeweils zwei Recheneinheiten durchgeführt werden. Nachteilig ist weiterhin, dass eine aufwändige Kommunikationsbibliothek zur Verfügung gestellt werden muss und dass für jede zu erfolgende Kommunikation erneut temporär Kommunikationsspeicher VA und VB zur Verfügung gestellt werden müssen. Nachteilig ist schließlich, dass die Rechenwerke der Recheneinheiten selbst in den Datenaustausch involviert werden (z. B. Kopiervorgang der Nutzdaten in den temporären Kommunikationspuffer) .
Hier setzt nun die vorliegende Erfindung ein, die es sich zur Aufgabe macht, ein Netzwerksystem und ein Verfahren zur Verfügung zu stellen, mit dem effizienter, flexibler und besser skalierbar auf verteilte Speicher zugegriffen werden kann, um beispielsweise eine parallele Anwendung auf mehreren, verteilten Netzwerkeinheiten durchführen zu können. Unter einer parallelen Anwendung wird hierbei die Gesamtheit aller zeitlich parallel-ablaufender Rechenprogramme mit Ausführungspfad (en) beschrieben, die zusammen, verbunden über ein Netzwerk, zur Bearbeitung von Eingabedaten herangezogen werden können. Die einzelnen Re- chenprogramme werden dabei auf physikalisch getrennten Rechenwerken mit eigenem Speicher ausgeführt (Rechenwerke der Netzelemente) . Man spricht daher auch von parallelen Anwendungen auf verteilten Speichern (Distributed Memory Computing) .
Diese Aufgabe wird bei der vorliegenden Erfindung durch das Netzwerksystem nach Anspruch 1 und das Verfahren nach Anspruch 21 gelöst. Vorteilhafte Weiterbildungen des erfindungsgemäßen Netzwerksystems und des erfindungsgemäßen Verfahrens werden in den jeweiligen abhängigen Ansprüchen gegeben. Die Erfindung betrifft weiterhin Verwendungen derartiger Netzwerksysteme und Verfahren, wie sie in Anspruch 23 gegeben werden.
Entscheidende Idee bei der vorliegenden Erfindung ist es, dass zur effizienten und konsistenten Organisation des Zugriffs einer Anwendung auf verteilte Speicher in verteilten Netzelementen a priori (d.h. spätestens beim AnwendungsStart oder unmittelbar danach) in jedem der beteiligten Netzelemente zumindest ein
Teil des normalerweise für Berechnungen zur Verfügung stehenden physikalischen Systemspeichers dauerhaft (d. h. über die gesamte Laufzeit dieser Anwendung bzw. Applikation) für den Datenaustausch mit anderen Netzelementen exklusiv für diese Anwendung reserviert wird. Unter einer exklusiven Reservierung eines lokalen physikalischen Speicherbereichs für die Anwendung wird dabei verstanden, dass dieser lokale Speicherbereich so abgetrennt wird, dass er fortan ausschließ- lieh der besagten Anwendung zur Verfügung steht, dass also anderen Anwendungen und das Betriebssystem keine Zugriffsrechte mehr auf diesen physikalischen Speicherbereich haben und/oder erwerben können.
Die lokal in den einzelnen Netzelementen reservierten Speicherbereiche werden wie nachfolgend noch näher beschrieben in einem global dauerhaft nutzbaren physikalischen Kommunikations- und Rechenspeicher zusam- mengefasst, indem die einzelnen Netzelemente unter- einander Informationen (z. B. Startadr^sse und Länge des reservierten Bereiches bzw. Adressbereich) über die bzw. zur Identifikation der lokal reservierten physikalischen Speicherbereiche austauschen. Untereinander austauschen bedeutet hierbei, dass jedes be- teiligte Netzelement mit jedem anderen beteiligten
Netzelement einen solchen Informationsaustausch vor- nimmt (beteiligt sind hierbei in der Regel alle Netzelemente des Netzwerksystems) . Basierend auf diesen ausgetauschten Informationen wird ein globaler virtueller Adressraum (globaler VM-Speicherbereich) aufge- spannt, indem die globalen virtuellen Adressen dieses Adressraums so aufgebaut werden, dass jede globale virtuelle Adresse eine ein Netzelement eindeutig festlegende Information (z. B. Nummer des Netzelementes) und eine eine sich auf diesem Netzelement befin- dende physikalische Speicheradresse eindeutig festlegende Information (z. B. die Adressangabe der physikalischen Speicherstelle selbst) umfasst.
Dieser globale VM-Speicherbereich kann dann von der Anwendung für die unmittelbare Kommunikation (unmittelbarer Datenaustausch zwischen den Netzelementen, d. h. ohne weitere Adressumrechnungen virtuell auf physikalisch) mittels DMA-Hardware verwendet werden, indem die Anwendung die globalen virtuellen Adressen als Zugriffsadressen einsetzt. Die Anwendung verwendet somit globale virtuelle Adressen für einen DMA- Aufruf: Dies wird dadurch ermöglicht, dass der globale VM-Speicherbereich in den virtuellen Adressraum der Anwendung (dies ist der virtuelle Adressraum, welcher der Anwendung vom Betriebssystem zur Verfügung gestellt wird) eingeblendet wird. Wie eine solche Einblendung erfolgen kann, ist dem Fachmann bekannt (z. B. MMAP) . Der direkte DMA-Aufruf durch die Anwendung ist hierbei möglich, da ein direkter linea- rer Zusammenhang zwischen dem eingeblendeten globalen VM-Speicherbereich und den einzelnen lokal reservierten physikalischen Speicherbereichen besteht. Die Anwendung wird hierbei weiterhin standardmäßig durch das Betriebssystem verwaltet und kann Dienste des Be- triebssystems in Anspruch nehmen. Der lokal zur Verfügung gestellte physikalische Sys- temspeicher eines Netzelementes kann dabei beispielsweise einen über einen Systembus des Netzelementes (z. B. PC) ansprechbaren Speicher umfassen, es ist jedoch auch möglich, dass dieser physikalische Systemspeicher einen auf einer separaten Karte (z. B. PCI-E-Steckkarte) zur Verfügung gestellten Speicher (Kartenspeicher) umfasst.
Um die vorbeschriebene Lösung zur realisieren, wird auf den beteiligten Netzelementen eine gemeinsame virtuelle Maschine installiert. Diese umfasst auf den Netzwerkelementen Programmteile (Software) und festverdrahtete Teile (Hardware) und führt die im Folgen- den beschriebenen Funktionen durch.
Die virtuelle Maschine besteht dabei aus einer Vielzahl von Instanzen (lokale Programmabschnitte und lokale Hardware-Elemente), wobei in jedem Netzelement eine Instanz, die sog. VM- Instanz, welche dann jeweils einen Programmteil (lokale VM-Schnittstellen- bibliothek) und einen Hardwareteil (lokales VM-Hard- wareinterface) aufweist, installiert wird. Die VM- Instanz allokiert in dem lokalen Speicher des jewei- ligen Netzelementes den vorstehend beschriebenen, zu reservierenden lokalen physikalischen Speicherbereich, der der virtuellen Maschine (und über diese der Anwendung) nach Austausch der vorbeschriebenen Informationen in Form des globalen VM-Speicher- bereichs zur Verfügung gestellt wird. Die Allckatiori kann dabei entweder von der lokalen VM-Schnittstellenbibliothek zur Laufzeit der Anwendung vorgenommen werden, oder von dem lokalen VM-Hardwareinterface zur Systemstartzeit oder während des Bootvorgangs vorge- nommen werden. Die globalen virtuellen Adressen sind für jede der Speicherstellen innerhalb des globalen VM-Speicherbereichs eindeutig. Über eine derartige globale virtuelle VM-Adresse lässt sich dann von jeder der VM-Instanzen jede beliebige Speicherstelle innerhalb des globalen VM-Speicherbereichs eindeutig 5 ansprechen, sofern dieser Instanz zuvor entsprechende Zugriffsrechte eingeräumt wurden.
Die lokalen VM-Instanzen bilden somit gemeinsam, gegebenenfalls zusammen mit lokalen und globalen Opera- 10 tionen (beispielsweise gemeinsame globale atomare
Zähler), die virtuelle Maschine. Diese ist also die Vereinigung aller VM-Instanzen.
Somit werden durch die vorliegende Erfindung zwei pa- 15 rallel existierende, voneinander unabhängige Adressräume ausgebildet: Ein erster Adressraum, welcher wie gehabt durch das Betriebssystem verwaltet wird, und ein weiterer, zweiter Adressraum, welcher durch die lokalen VM-Instanzen verwaltet wird. Der zweite Ad- 20 ressraum steht mit Hilfe der lokalen VM-Instanzen exklusiv einer Anwendung (gegebenenfalls auch mehrerer Anwendungen) zur Verfügung.
Besonders vorteilhaft ist es, wenn die einzelnen VM- 25 Instanzen die von den einzelnen Netzelementen untereinander auszutauschenden Informationen (z. B. Startadresse und Länge des reservierten Bereiches) über die lokal reservierten physikalischen Speicherbereiche unmittelbar nach Systemstart oder während des ■}o RoOtVo-TCTcIn47S austauschen, da zu diesem Zeitpunkt linear zusammenhängende physikalische Speicherbereiche maximaler Größe im jeweiligen lokalen Netzelement reserviert werden können bzw. dem Zugriff durch das Betriebssystem entzogen werden können. 35
Als Netzelemente kommen dabei Recheneinheiten in Fra- ge, die ein eigenes Rechenwerk sowie einen zugeordneten Speicher aufweisen (z.B. PCs). Es sind jedoch aufgrund der technologischen Entwicklung auch über Netzwerkverbindungen, beispielsweise Internet- Verbindungen oder andere LAN-Verbindungen oder auch WLAN-Verbindungen, miteinander gekoppelte Speichereinheiten, möglich, die nicht über eigene Recheneinheiten im eigentlichen Sinne verfügen. Aufgrund der technologischen Weiterentwicklung ist es möglich, dass unmittelbar die Speichereinheit selbst die erforderliche Mikroprozessorkapazität zur Installation einer VM-Instanz aufweist oder dass eine derartige VM- Instanz in einer RDMA-Schnittstelle (Netzwerkkarte mit remote direct memory acess, entfernter Direkt- Speicherzugriff) installiert werden kann.
Die virtuelle Maschine optimiert die Datenkommunikation und überwacht auch die parallel laufenden Prozesse der einzelnen Instanzen. Bei einem Zugriff ei- ner parallelen Anwendung (welche auf allen lokalen Netzelementen ausgeführt wird) auf den globalen VM- Speicherbereich mittels DMA-Aufruf werden die benötigten Quell- und Zieladressen von der zugehörigen lokalen VM-Instanz (diese ist die VM-Instanz desjeni- gen Netzelements, in dem die Anwendung einen Datenaustausch initiiert) wie folgt berechnet:
Die (globale virtuelle) Quelladresse ergibt sich gemäß der Adresstranslation, welche durch das Einblen- den des globalen VM-Speicherberei rhs in den virtuellen Adressraum der Anwendung definiert wurde bzw. entstanden ist, aus einer einfachen Offsetberechnung (der Offset ist hierbei gleich der Differenz aus der Startadresse des lokalen physikalischen Bereichs und der Startadresse des zugehörigen eingeblendeten Bereichs; erste Art der Offsetberechnung) . Wird nun von der (lokalen) VM-Instanz auf die (globale virtuelle) Zieladresse zugegriffen, so prüft die Instanz zuerst, ob die Zieladresse innerhalb des ei- genen (lokalen) Netzelementes liegt. Ist dies der
Fall, wird die Zieladresse von der VM- Instanz analog zur Quelladresse (s. oben) berechnet. Andernfalls, wenn also die Nummer des Netzelements nicht der Nummer des Netzelements der zugreifenden VM-Instanz ent- spricht, ergibt sich die Zieladresse ebenfalls aus einer Offsetberechnung, wobei sich der Offset hier dann jedoch aus der Differenz der Startadressen der reservierten physikalischen Speicherbereiche des lokalen Netztelements und des betroffenen entfernten Netzelements ergibt, zweite Art der Offsetberechnung (d. h. es erfolgt ein Zugriff über die globale virtuelle Adresse auf den lokalen physikalischen Speicherbereich der betroffenen entfernten Netzeinheit; die betroffene entfernte Netzeinheit ist dabei dasjenige Netzelement, welches durch die in der entsprechenden globalen VM-Adresse beinhaltete Information zur Identifikation des zugehörigen Netzelementes, also z.B. die Nummer des Netzelementes, festgelegt ist) . Anschließend erfolgt in beiden Fällen der Datenaus- tausch mittels hardwareparallelem DMA.
Besonders vorteilhaft ist es, wenn die globale virtuelle Adresse ein 2-Tupel ist, das als erstes Informationselement z.B. die weltweit eindeutige MAC-Adresse des Netzelementes., in dem <ieτ" Speicher physikalisch allokiert ist, und als zweites Informationselement eine physikalische Speicheradresse innerhalb dieses Netzelementes aufweist. Hierdurch ist ein unmittelbarer Zugriff jeder VM-Instanz auf eine definierte Speicherstelle innerhalb des globalen virtuellen Adressraumes möglich. Vorteilhafterweise ist es auch möglich, einen eigenen, durch die parallele Anwendung gesteuerten, globalen Cachespeicherbereich zu definieren. Dies kann wie folgt geschehen: Zunächst wird eines der beteiligten Netzelemente als Cachenetzelement ausgewählt. In diesem ausgewählten Cachenetzelement wird lokaler physikalischer Speicher gesondert als globaler LBU- Cachespeicher ausgewiesen (LBU von engl, load balan- cing unit; eine solche LBU ist eine Menge von Operanden bzw. Inhalten oder zu bearbeitende Daten, die, wie dem Fachmann bekannt ist, eine Zerlegung des parallel zu lösenden Problems der parallelen Anwendung in mehrere einzelne, global eindeutige Teilstücke (die Units) , die den einzelnen Netzelementen zur Bearbeitung zugeordnet werden, beschreibt; die Inhalte der LBUs sind dabei unveränderlich) . Das Cachenetz- element teilt allen anderen Netzelementen seine Eigenschaft, das Cachenetzelemente zu sein (sowie seine Netzelementnummer) , mittels eines von der virtuellen Maschine zur Verfügung gestellten Service mit (globale Operation) .
In dem Cachenetzelement wird im globalen LBU-Speicher ein Protokoll gespeichert, in welchem vermerkt wird, welche LBUs sich aktuell auf welchen Netzelementen befinden. Das Protokoll vermerkt hierbei für alle LBUs, in welchem Netzelement sie sich gerade befinden und wo sie dort im lokalen physikalischen Speicher abqeleαt sind. Hierzu wird das Protokoll ϊiher die
Laufzeit jeweils aktualisiert, wenn eine LBU zwischen zwei Netzelementen kommuniziert wird bzw. worden ist, indem die beteiligten Netzelemente dies dem Cachenetzelement mitteilen. Jede LBU-Kommunikation wird somit im Protokoll festgehalten. Das Protokoll kann beispielsweise in Form einer n-fach assoziativen Ta- belle erstellt werden, bei der jeder Tabelleneintrag aus der folgenden Information besteht: Global eindeutige LBU-Nummer, Nummer des Netzelements, auf dem die zugehörige LBU gerade abgelegt ist und physikalische Speicheradresse, an der die LBU im physikalischen
Speicher des Netzelements gespeichert ist. Da das Cachenetzelement als genau eine zentrale Instanz mit global eindeutig definiertem Protoll fungiert, ist hierdurch eine globale Cachekohärenz einfach zu rea- lisieren.
Wenn nun die Anwendung eines Netzelements auf eine LBU zugreifen will, fragt sie zunächst bei dem Cachenetzelement an, ob sich die Nummer der angefragten LBU gerade im Protokoll befindet (z. B. also diese LBU kürzlich von einem der Netzelemente von seiner lokalen Festplatte in den reservierten lokalen physikalischen Speicher geladen worden war) , also über den reservierten physikalischen Speicher des lokalen oder eines der entfernten Netzelemente zugreifbar ist.
Somit ist es wie vorbeschrieben möglich, erfindungsgemäß einen globalen Cachespeicherbereich auszubilden. Möchte somit eine Anwendung auf Daten zugreifen, die lokal nicht vorliegen, die jedoch gemäß der von dem Cachenetzelement verwalteten Tabelle in dem reservierten physikalischen Speicher eines entfernten Netzelements vorliegen, so kann auf die vorbeschriebene Art und Weise effizient auf diese Daten zuge- griffen werden, da die Daten im globalen VM-
Speicherbereich vorhanden sind, also ein DMA-Zugriff auf diese Daten erfolgen kann (was z. B. lokale oder entfernte Plattenzugriffe vermeidet) . Eine globale Gültigkeit von Cachedaten kann durch das Cachenetz- element somit gewährleistet werden. Insgesamt wird hierdurch ein beschleunigter Zugriff auf die in dem globalen virtuellen Adressraum gespeicherten Daten möglich.
Im Falle von Recheneinheiten als Netzelementen wird also auf jeder der Recheneinheiten eine Instanz der virtuellen Maschine gestartet. Diese teilt dann den in einem Netzelement vorhandenen Hauptspeicher in zwei getrennte Adressereiche ein. Diese Bereiche entsprechen zum einen der dem globalen virtuellen Spei- cherbereich exklusiv zur Verfügung gestellten, lokal reservierten physikalischen Speicherbereich der virtuellen Maschine, sowie dem übrig bleibenden lokalen physikalischen Speicher, der weiterhin vom Betriebssystem verwaltet wird. Die Einteilung kann fix zum Systemstart erfolgen, über eine Anwendung zu ihrer Laufzeit gesteuert erfolgen oder auch vom Betriebssystem selbst vorgegeben werden.
Es können dabei Zugriffsrechte für den globalen vir- tuellen VM-Speicherbereich und/oder den optionalen
VM-Cache global für jede VM- Instanz vergeben werden. So kann beispielsweise jeder VM- Instanz der Zugriff auf diese Speicherbereiche erlaubt werden oder nur einem Teil der VM- Instanzen.
Beispielsweise unmittelbar nach dem Start der VM- Maschine tauschen alle beteiligten VM-Instanzen Informationen über ihre für den globalen VM-Speicher reservierten lokalen Adressbereiche aus (z. B. mit- tels Multicast oder Broadcast) . Damit kann in jedem Netzelement lokal eine LUT-Struktur (look up table- Struktur) erzeugt werden, mit deren Hilfe die entfernten globalen virtuellen Adressen effizient berechnet werden können. Die Umrechnung der lokalen physikalischen Adressen in bzw. aus globalen virtuellen VM-Adressen (siehe oben stehende Beschreibung zur Berechnung von Quell- und Zielebene) erfolgt dabei innerhalb der lokalen VM-Instanzen.
Dabei sind vorteilhafterweise folgende Realisierungen der Umrechnungen möglich:
• Direkte Implementierung der Adressumrechnung auf der Hardware der DMA-fähigen Netzwerkschnittstelle (z. B. mittels der oben beschriebenen look up- Tabelle LUT) . • Als Softwaremakro innerhalb einer Hochsprache.
Vorteilhaft an der vorliegenden Erfindung ist insbesondere die Verwendung mehrerer (zweier) unterschiedlicher Adressräume. Der erste Adressraum entspricht dabei dem globalen VM-Speicherbereich in einem System mit verteilten Speichern, auf dem DMA Operationen von parallelen Anwendungen effizient ausgeführt werden können. Der zweite Adressraum entspricht dabei einem parallel zum und unabhängig vom VM-Speicherbereich existierenden Adressraum, welcher von den lokalen Betriebssystemen verwaltet wird und welcher somit ein Speichermodell wie beim Clustercomputing (Distributed Memory Computimg) darstellt.
Es wird somit eine einseitige, global asynchrone Kommunikation ohne Kommunikationspartner (Single side communication) möglich. Weiterhin kann die Kommunikation als globale Zero-Copy-Kommunikation erfolgen, da keine Zwischenkopien für Kommunikationspuffer erzeugt werden müssen. Die Rechenwerke der Rechenpinheiten der Netzelemente sind während der Kommunikation frei für Berechnungsaufgaben.
Ein anwendungsbezogener, globaler, zentral durch ge- nau ein Cachenetzelement verwalteter Cachespeicher
(LBU-Cachespeicher) kann als globaler nutzbarer Ser- vice von der virtuellen Maschine zur Verfügung gestellt werden. Dieser ermöglicht eine effiziente Kommunikation auch bei Anwendungsproblemen, welche einen größeren Speicherbedarf erfordern, als den von dem globalen VM-Speicherbereich zur Verfügung gestellten.
Die vorliegende Erfindung ist dabei insbesondere auf parallelen oder nicht parallelen Systemen, insbesondere mit mehreren über Netzwerke miteinander verbun- denen Recheneinheiten für parallele oder auch nichtparallele Anwendungen einsetzbar. Der Einsatz ist jedoch auch möglich mit mehreren verteilten Speichereinheiten, wenn jedes Speichersubsystem eine Vorrichtung aufweist, die einen Fernzugriff (remote ac- cess) auf diesen Speicher ermöglicht. Auch gemischte Systeme, bei denen nicht parallel gearbeitet wird, jedoch der Speicher verteilt auf verschiedene Netzwerkelemente vorliegt, eignen sich für die Anwendung der vorliegenden Erfindung.
Im Folgenden werden einige Beispiele erfindungsgemäßer Netzwerksysteme und Verfahren gegeben.
Es zeigen
Figur 1 eine konservative Systemarchitektur;
Figur 2 die logische Struktur eines erfindungsgemäßen Netzwerksystems mit zwei Netzelementen 2a und 2b;
Figur 3 die einzelnen Ebenen eines erfindungsgemäßen Netzwerksystems;
Figur 4 den Aufbau des Hardware-Interfaces einer
VM-Instanz ; Figur 5 den globalen virtuellen Adressraum bzw. den globalen VM-Speicherbereich;
5 Figur 6 den Adressraum einer parallelen Anwendung;
Figur 7 die Speicherallokation in zwei Netzelementen sowie die Offsetberechnung zum Berechnen einer Zieladresse für einen DMA- 10 Zugriff.
Hier wie im Folgenden werden für gleiche oder ähnliche Elemente gleiche oder ähnliche Bezugszeichen verwendet, so dass deren Beschreibung ggf. nicht wieder-
15 holt wird. Im Folgenden werden einzelne Aspekte der Erfindung im Zusammenhang miteinander geschildert, auch wenn jeder einzelne der im folgenden geschilderten Aspekte der Beispiele und der Erfindung als solche für sich erfindungsgemäße Weiterbildungen der
20 vorliegenden Erfindung darstellen.
Figur 1 zeigt eine konservative Systemarchitektur, wie sie aus dem Stand der Technik bekannt ist. Die Figur zeigt, wie in konventionellen Systemen eine An- 25 wendung (beispielsweise auch eine parallele Anwendung) auf eine Hardware (beispielsweise einen physikalischen Speicher) zugreifen kann. Wie in Figur 1 gezeigt, werden hierzu, beispielsweise in einem Netzelement, in der Regel drei verschiedene Ebenen (hier
T H \re*τrt i \ca 1 VIV-IÖ T-^ H nanHpr Ha rαp α t-e l I t- I an oαohi 1 Ho t- ni e zwei oberen Ebenen, die Anwendungsebene, auf der die beispielsweise parallele Anwendung läuft, sowie die sich darunter befindende Betriebssystemebene bzw. Hardware-Abstraktionsebene, sind als Software-Lösung 35 realisiert. Unterhalb der Betriebssystemebene befindet sich die physikalische Ebene, auf der sich samt- liehe Hardware-Komponenten befinden. Die Anwendung kann somit wie gezeigt über das Betriebssystem bzw. die vom Betriebssystem zur Verfügung gestellten Dienste auf die Hardware zugreifen. Hierzu ist in der Betriebssystemebene eine Hardware-Abstraktionsebene (HAL, von engl, hardware abstraction layer) vorgesehen (beispielsweise Treiber oder ähnliches) , über welche das Betriebssystem auf die physikalische Ebene bzw. Hardwareebene zugreifen kann, also z.B. berech- nete Daten der Anwendung in einen physikalischen Speicher schreiben kann.
Figur 2 zeigt nun den grundlegenden Aufbau eines Netzwerksystems nach der vorliegenden Erfindung. Die- ses weist zwei Netzelemente 2a, 2b in Form von Recheneinheiten (PCs) auf, die jeweils einen lokalen physikalischen Speicher 5a und 5b aufweisen. Von diesem lokalen Speicher wird durch die jeweils auf dem Netzelement installierte Instanz der virtuellen Ma- schine ein Teil 10a, 10b für den globalen Gebrauch durch die virtuelle Maschine als globaler virtueller Speicherbereich reserviert. Nachfolgend wird das Bezugszeichen 10 alternativ für einen durch eine VM- Instanz abgetrennten physikalischen Speicher oder für den diesem Speicher entsprechenden Teil des globalen virtuellen Speicherbereichs verwendet. Für den Fachmann ist dabei aus dem Zusammenhang erkennbar, was jeweils gemeint ist. Die auf den jeweiligen Recheneinheiten installierten Instanzen der virtuellen Ma-
Figure imgf000020_0001
r RP7iin<37e ή rlhpτi 1 9 a i τnH 1 QVi Vie» - zeichnet sind, verwalten diesen Speicher 10a, 10b. Der physikalische Speicher 5 wird also aufgeteilt in lokalen Speicher 9a, 9b, welcher vom Betriebssystem verwaltet wird und einer spezifischen Anwendung (so- wie anderen Anwendungen) zusätzlich zur Verfügung gestellt werden kann, und globalen VM-Speicher 10a, 10b, welcher exklusiv der spezifischen (parallelen) Anwendung zur Verfügung gestellt wird und für das Betriebssystem nicht mehr sichtbar ist.
5 Die Gesamtheit des reservierten globalen Speicherbereichs 10a, 10b, der Instanzen der virtuellen Maschine 12a, 12b sowie die globalen Operationen, die zum Betrieb der Maschine und zur Optimierung der Speichernutzung erforderlich sind (z.B. Barriers, kollek-0 tive Operation etc.), bilden die virtuelle Maschine 11. Diese virtuelle Maschine ist also ein Gesamtsystem bestehend aus reserviertem Speicher, Programmbestandteilen und/oder Hardware, die die VM-Instanzen 12a, 12b bilden. 5
Mit einer derartigen virtuellen Maschine 11 innerhalb eines Netzwerksystems 1 wird folglich ein übergreifender globaler virtueller Speicherbereich geschaffen und verwaltet, der für Anwendungen auf einer der Re-0 cheneinheiten sowie für Anwendungen, die parallel und verteilt auf den Recheneinheiten laufen, zugänglich ist.
Die Anzahl der Netzelemente bzw. Recheneinheiten kann5 natürlich auf eine beliebige Anzahl verallgemeinert werden .
Jede der Recheneinheiten 2a und 2b besitzt hier neben ihrem Hauptspeicher 5a, 5b ein oder mehrere Rechen- O w
Figure imgf000021_0001
a τ-V->sa -i t- e-rι m π -t- rieni Hannh ono i - eher 5a zusammen. Jede Recheneinheit 2a, 2b weist hier auf Hardwareebene weiterhin eine DMA-fähige Schnittstelle auf. Diese Schnittstellen sind mit einem Netzwerk verbunden, über das alle Recheneinhei-5 ten untereinander miteinander kommunizieren können. Auf jeder dieser Recheneinheiten 2a, 2b wird nun eine Instanz einer virtuellen Maschine installiert, wobei die lokalen VM- Instanzen wie vorbeschrieben die lokalen physikalischen Speicher exklusiv reservieren, den globalen VM-Speicher aufspannen und hierdurch die
DMA-Operationen ermöglichen. Das Netzwerk ist selbstverständlich auch DMA-fähig, da es dann den Datentransport zwischen den beiden Recheneinheiten 2a und 2b über die DMA-Netzwerkschnittstellen der Netzele- mente durchführt.
Vorteilhafterweise weist das DMA- fähige Netzwerk hierbei folgende Kenngrößen auf :
- Der Datenaustausch zwischen den Hauptspeichern er- folgt hardwareparallel, d.h. der DMA-Controller und das Netzwerk arbeiten unabhängig und nicht programmgesteuert ;
- die Zugriffe auf die Speicher (lesend/schreibend) erfolgen ohne Intervention der Rechenwerke; - die Datentransporte können asynchron-nicht- blockierend durchgeführt werden;
- es erfolgt die Übertragung mit einem Zero-Copy- Protokoll (es werden keine Kopien der übertragenen Daten angelegt) , so dass kein lokaler Betriebssys- tem-Overhead erforderlich ist.
Um die Latenzzeiten des Netzwerks zu verstecken, können vorteilhafterweise parallele Anwendungen in dem Netzwerksystem 1 asynchron auf den globalen VM- Rnp i rtiprhprp i rh H P>T- TrT T-I- I i Pi I i Pn Ma ςrtri np 7i iαrp i f pn
Der aktuelle Zustand der Lese- und Schreiboperation kann dabei jederzeit von der virtuellen Maschine abgefragt werden.
Bei dem beschriebenen System wird die Zugriffsbandbreite auf entfernte Speicherbereiche, d.h. bei- spielsweise von der Recheneinheit 2a auf den Speicherbereich b der Recheneinheit 2b weiter erhöht, indem wie vorbeschrieben ein globaler Cachespeicherbereich definiert wird (z.B. wird das Netzelement 2a als das Cachenetzelement festgelegt) . Die lokalen VM- Instanzen organisieren hierbei die notwendigen Anfragen und/oder Zugriffe auf das Protokoll in dem Cachenetzelement. Der globale Cachespeicherbereich wird somit durch die virtuelle Maschine organisiert. Er kann beispielsweise auch als FIFO (First In First Out) oder als LRU (Least Recently Used) - Speicherbereich organisiert werden, um asynchron angeforderte Daten zwischenzuspeichern. Für diesen globalen Cache-Speicher kann globale Speicherkonsistenz garantiert werden, z.B. indem Cache-Einträge als
„dirty" markiert werden, wenn eine VM-Instanz diese zuvor schreibend verändert hat.
Hierdurch wird insgesamt ein weiter beschleunigter Zugriff auf erforderliche Daten erreicht. Der Cache- Speicherbereich ist für jede der Anwendungen, die die virtuelle Maschine nutzt, transparent, da er von der virtuellen Maschine verwaltet und kontrolliert wird.
Bei dem in Figur 2 gezeigten Beispiel steht ein Teil des Hauptspeichers 5a, 5b als lokaler Speicher weiterhin allen Anwendungen auf den Recheneinheiten 2a, 2b lokal wie gewohnt zur Verfügung. Dieser lokale Speicher ist für die virtuelle Maschine nicht sicht- bar (getrennte Adressräume) und kann folglich lokal anderweitig genutzt werden.
Greift eine Anwendung über eine VM- Instanz auf eine Speicheradresse innerhalb des globalen Speicherbe- reichs 10a, 10b zu, so ermittelt die jeweilige lokale VM-Instanz 12a, 12b ein zugehöriges Kommunikations-2- Tupel als virtuelle Adresse innerhalb des globalen VM-Speicherbereichs 10a, 10b. Dieses 2-Tupel ist bei diesem Beispiel aus zwei Informationselementen zusammengesetzt, wobei das erste Element sich aus der Netzadresse (insbesondere weltweit eindeutige MAC- Adresse) der lokalen Recheneinheit 2a, 2b und das zweite Elemente sich aus einer physikalischen Adresse innerhalb des Adressraums dieses Netzelementes ergibt.
Dieses 2 -Tupel gibt also an, ob sich der zu der globalen virtuellen Adresse zugehörige physikalische Speicher innerhalb der Recheneinheit selbst, auf der die Anwendung läuft und die auf diesen Speicherbe- reich zugreifen möchte, befindet oder in einem entfernten Speicherbereich in einer entfernten Recheneinheit zugehörig ist. Ist die zugehörige physikalische Adresse lokal auf der zugreifenden Recheneinheit vorhanden, so wird nach der ersten Art der Offsetbe- rechnung wie vorbeschrieben unmittelbar auf diesen Speicher zugegriffen.
Liegt die Zieladresse jedoch auf entfernten Recheneinheiten, beispielsweise auf der Recheneinheit 5b, so führt die lokale VM-Instanz, die auf der Recheneinheit 5a installiert ist, lokal die zweite Art der Offsetberechnung wie vorbeschrieben durch und initiiert einen DMA-Aufruf mit entsprechender Quell- und Zieladresse. Die Berechnung der Adressen auf der ent- fernten Recheneinheit 5b erfolgt hierbei WIR nachfolgend noch genauer beschrieben über das 2 -Tupel der globalen virtuellen Adresse mittels eines Zugriffs auf eine Look-Up-Tabelle. Nach Initiierung des DMA- Aufrufs geht die Kontrolle an die DMA-Hardware, in diesem Falle eine RDMA-Hardware . Zur weiteren Datenübertragung sind dann die Rechenwerke in den Rechen- einheiten 5 nicht mehr involviert und können andere Aufgaben, beispielsweise lokale Anwendungen oder hardwareparallele Berechnungen übernehmen.
Durch die vorliegende Erfindung wird also eine Maschine mit verteiltem Speicher (Shared Memory Machine) mit den Vorteilen einer verteilten Speichertopo- logie verbunden.
Die vorliegende Erfindung ist auch durch einfache Ersetzung der Recheneinheiten 2a, 2b durch Speichereinheiten auch in Netzwerksystemen verwendbar, bei denen einzelne Speichereinheiten über Netzwerkverbindungen miteinander verbunden sind. Diese Speichereinheiten müssen nicht Teil von Recheneinheiten sein. Es genügt, wenn diese Speichereinheiten Vorrichtungen aufweisen, die einen RDMA-Zugriff auf diese Speichereinheiten ermöglichen. Dies ermöglicht dann auch den Einsatz von über Netzwerkverbindungen gekoppelte Speichereinheiten innerhalb eines Systems, bei dem ggf . lediglich noch eine Recheneinheit vorhanden ist bzw. in Systemen, bei denen die virtuelle Maschine lediglich die Organisation mehrerer verteilter Speichereinheiten übernimmt.
Figur 3 zeigt nunmehr die parallele Adressraumarchitektur und die verschiedenen Ebenen (Softwareebene und Hardwareebene) , wie sie in der vorliegenden Erfindung ausgebildet werden. Die Figur zeigt hierzu ein einzelnes Netzelement 2a, was wie vorbeschrieben ausgebildet ist. Entsprechende weitere Netzelemente, die mit dem Netzelement 2a über ein Netzwerk verbunden sind, sind dann ebenso ausgebildet (die parallele spezifische Anwendung AW, welche über die virtuelle Maschine bzw. die lokalen VM- Instanzen den globalen
VM-Speicherbereich nutzt, läuft auf allen Netzelemen- ten 2 ) .
Wie vorbeschrieben werden nun zwei parallel existierende, getrennte Adressräume erzeugt, ein erster Ad- ressraum (globaler VM-Speicherbereich) , welcher in den virtuellen Adressraum der Anwendung AW eingeblendet wird, und somit der Anwendung als globaler virtueller Adressraum zur Verfügung steht: Die Anwendung AW (es kann sich hierbei selbstverständlich auch um mehrere Anwendungen handeln) kann somit über die globalen virtuellen Adressen des VM-Speicherbereiches unmittelbar, d.h. mittels DMA-Aufrufen, auf die Hardware der physikalischen Ebene, d.h. den für den globalen VM-Speicherbereich lokal reservierten physika- lischen Speicher (hier als VM-Speicher 10 bezeichnet) zugreifen. Wie in Figur 3 gezeigt (rechte Spalte) , operiert in diesem Fall die einzelne Anwendung mit Hilfe der lokalen VM-Instanz auf der Betriebssystemebene und hat einen exklusiven Zugriff auf die VM- Hardware, insbesondere also auf den von der VM-
Hardware verwalteten physikalischen Systemspeicher 10.
Um dies zu ermöglichen, umfasst die lokale VM-Instanz 12 im vorliegenden Fall auf der Betriebssystemebene eine VM-Softwarebibliothek 12-1 sowie auf der physikalischen Ebene/Hardwareebene ein VM-Hardware- Interface 12-2.
Parallel zum VM-Speicherbereich bzw. Adressraum und getrennt davon, besteht ein weiterer, zweiter Adressraum: Der lokale Adressraum. Während der VM-Adress- raum von der virtuellen Maschine bzw. der lokalen VM- Instanz 12 verwaltet wird und somit für das Betriebs- System BS, sowie für andere nicht mit den VM-Instan- zen operierende Anwendungen nicht sichtbar ist, wird dieser weitere, zweite Adressraum standardmäßig durch das Betriebssystem BS verwaltet. Wie bei der konservativen Systemarchitektur (Figur 1) kann das Betriebssystem BS den diesem zweiten Adressraum 9 ent- sprechenden physikalischen Speicher des Systemspeichers 5 über die Hardware-Abstraktionsebene HAL der spezifischen Anwendung AW zusätzlich zur Verfügung stellen. Die Anwendung hat somit die Möglichkeit, auf beide, getrennte Adressräume zuzugreifen. Andere, nicht über die virtuelle Maschine organisierte Anwendungen können jedoch nur auf den Systemspeicherbereich 9 bzw. den ersten Adressraum über das Betriebssystem zugreifen.
Figur 4 zeigt nun ein Beispiel für einen Aufbau des
VM-Hardware-Interfaces 12-2 aus Figur 3. Dieser Hardwareteil der VM- Instanz 12 besteht hier aus den Komponenten Zentralprozessor, DMA-Controller, Netzwerk- schnittstelle und optionalem lokalem Kartenspeicher. Die VM-Hardware- Interfaceeinheit 12-2 ist im vorliegenden Fall als Steckkarte auf einem Bussystem (z.B. PCI, PCI-X PCI-E, AGP) realisiert. Der hier optional zusätzlich zur Verfügung gestellte lokale Kartenspeicher 13 kann ebenso wie der VM-Speicher 10 (welcher hier physikalischem Speicher auf der Hauptplatine bzw. dem Motherboard zugeordnet ist) der Anwendung AW als Teil des globalen VM-Speicherbereichs zur Verfügung gestellt werden (der einzige Unterschied zwischen dem lokalen Kartenspeicher 13 und dem VM- Speicherbereich 10 besteht somit darin, dass die entsprechenden physikalischen Speichereinheiten auf unterschiedlichen physikalischen Elementen angeordnet sind) . Alternativ zur Realisation als Steckkarte kann das VM-Hardware-Interface 12-2 auch als eigenständi- ges Systemboard realisiert werden. Das VM-Hardware- Interface 12-2 ist in der Lage, den ihm zugewiesenen Systemspeicher selbstständig zu verwalten.
Figur 5 skizziert die Ausbildung des die verschiedenen lokalen Netzelemente 2 überspannenden globalen VM-Speicherbereiches bzw. Adressraums des erfindungsgemäßen Netzwerksystems 1. Um diesen globalen Speicherbereich aufzuspannen, tauschen die einzelnen lokalen VM-Instanzen in den einzelnen Netzelementen vor Aufnahme jeglicher Datenkommunikation untereinander Informationen aus. Untereinander austauschen bedeutet hierbei, dass jedes über ihre VM- Instanz 12 am Netzwerksystem 1 beteiligte Netzelement 2 mit jedem anderen Netzelement 2 die entsprechende Information austauscht. Die ausgetauschte Information ist im vorlie- genden Fall ebenfalls als 2-Tupel kodiert, das erste Element des 2-Tupels enthält eine für jedes beteiligte Netzelement 2 innerhalb des Netzwerksystems 1 eineindeutige Nummer (z.B. MAC-Adresse) eines über das Internet mit anderen Netzelementen verbundenen PCs, das zweite Element des 2-Tupels enthält die Startadresse und die Länge des in diesem Netzelement reservierten physikalischen Speicherbereiches (bzw. Informationen über den entsprechenden Adressbereich) . Wie bereits beschrieben, lässt sich auf Basis dieser vor- ab jeglicher Datenkommunikation ausgetauschten Information der globale VM-Adressraum aufspannen, der dann ohne zusätzliche Adressumrechnungen für die DMA- Controller-Kommunikation nutzbar ist. Der globale Adressraum wird den lokal laufenden Anwendungen hierbei mittels der jeweiligen lokalen VM-Instanz zugängig gemacht .
Figur 6 skizziert die Einblendung des globalen VM- Speicherbereichs in den virtuellen Adressraum der spezifischen Anwendung AW, was die Voraussetzung für das Verwenden der globalen virtuellen Adressen für einen DMA-Aufruf über eine VM- Instanz 12 durch die Anwendung AW ist. Figur 6 zeigt somit den Adressraum der Anwendung AW, welche über die jeweiligen VM- Softwarebibliotheken 12-1, die von den VM-Hardware- Interfaces 12-2 zur Verfügung gestellten Adressbereiche in ihren virtuellen Adressraum einblendet bzw. mapped. Der gesamte virtuelle Adressraum der Anwendung AW ist hierbei wie üblich wesentlich größer, als der eingeblendete globale VM-Speicherbereich. Zusatz - lieh ist hier der von der Anwendung über das Betriebssystem BS zusätzlich nutzbare lokale physikalische Speicher, welcher nicht für die virtuelle Maschine reserviert wurde, eingezeichnet (gemappter lokaler Speicher 9) .
Neben dem vom Betriebssystem BS lokal verwalteten Adressraum (Virtualisierung des restlichen lokalen physikalischen Systemspeichers) existiert somit vollständig getrennt dazu ein weiterer Adressraum als globaler, über mehrere VM-Instanzen verteilter VM- Speicherbereich (letzterer dann für die parallele DMA-Kommunikation nutzbar) .
Entscheidend hierbei ist, dass der globale virtuelle Adressraum bzw. globale VM-Speicherbereich der Anwendung erst nach Initialisierung der VM-Instanzen und dem vorbeschriebenen Austausch der Information für die DMA-Kommunikation zur Verfügung steht. Hierzu wird lokal durch jede beteiligte VM- Instanz 12 zu- nä(jhaL vOiVi physikalischen Speicher dεc zugehöriger. Netzelementes zumindest ein Teilbereich abgetrennt, d.h. als exklusiv reservierter physikalischer Speicherbereich ausgezeichnet. Diese Allokation kann dabei entweder von der VM-Schnittstellenbibliothek 12-1 zur Laufzeit der Anwendung vorgenommen werden, oder vor diesem Zeitpunkt bereits durch das VM-Hardware- Interface 12-2 zur Systemstartzeit oder während des Bootvorgangs. Ist diese Reservierung erfolgt, so tauschen dann die einzelnen VM- Instanzen der einzelnen Netzelemente untereinander die notwendige Information (Startadresse und Länge des reservierten Bereichs) über die lokal reservierten physikalischen Speicherbereiche untereinander aus. Auf diese Art und Weise wird eine Speicherallokation realisiert, bei der dem von der Anwendung AW nutzbaren globalen VM-Speicher- bereich ein linearer physikalischer Adressraum, der direkt für DMA-Operationen mit Quell- und Zieladresse und Datenlänge verwendet werden kann, zugeordnet ist. Dieser Adressraum kann über ein Speicherabbild (memo- ry mapping in den virtuellen Adressraum der Anwen- düng) oder über die VM- Instanz aus einer Anwendung heraus direkt angesprochen werden.
Figur 7 zeigt nun anhand des einfachen Beispiels zweier Netzelemente 2a und 2b, wie in jedem dieser Netzelemente lokal physikalischer Speicher für den globalen VM-Speicherbereich reserviert wird und wie bei einem späteren Speicherzugriff durch die VM- Instanz eines lokalen Netzelementes (Netzelement 2a) auf ein entferntes Netzelement (Netzelement 2b) die Berechnung der Zieladresse für den unmittelbaren DMA- Aufruf erfolgt. Das Netzelement 2a und das Netzelement 2b stellen hierbei jeweils einen physikalischen Speicherbereich 5a, 5b (Hauptspeicher) zur Verfügung. Dieser beginnt jeweils bei der physikalischen StartaHrpcjQO R - O-V-O" In? TvToI- 70I ornon1- Oa τ«τ-ϊ τ-r^ nun C-IOT* physikalische Speicherbereich bzw. entsprechende globale VM-Speicherbereich 10a zur Verfügung gestellt (ebenso im Element 2b der Speicherbereich 10b) . Der Bereich 10a weist hierbei die Länge LO auf (Länge des Speicherbereichs 10b: Ll) . Die physikalischen Speicherbereiche 10a und 10b beginnen nun bei unter- schiedlichen physikalischen Startadressen S0 (Element 2a) und Si (Element 2b) . Zusätzlich eingezeichnet ist die Netzelementnummer „0" des Elementes 2a und die Netzelementnummer „1" des Elementes 2b (diese beiden Nummern werden als erstes Informationselement des In- formations-2-Tupels zwischen den beiden Netzelementen 2a und 2b gegenseitig ausgetauscht) . Beginnt so z.B. eine globale virtuelle Adresse mit „0", so weiß die VM-Instanz des Netzelementes 2a, dass die zugehörige physikalische Speicherstelle in diesem Netzelement zu finden ist, beginnt sie mit „1", so weiß die VM- Instanz des Netzelementes 2a, dass die zugehörige physikalische Speicherstelle im entfernten Netzelement 2b zu finden ist.
Im letzteren Fall wird die Zieladresse für einen DMA- Zugriff des Elementes 2a auf den physikalischen Speicher des Elementes 2b wie folgt berechnet: Durch die ausgetauschte Information weiß die Einheit 2a um die Differenz der physikalischen Startadressen S0 und Si.
Eine einfache Offsetberechnung der Verschiebung dieser Startadressen, also Off = S0- Si, ermöglicht dann mit dem berechneten Offset Off einen direkten DMA- Zugriff einer Anwendung im Netzelement 2a über die zugehörige VM-Instanz auf den Speicher des Netzelementes 2b.
Zu einer normalerweise von einer Anwendung angesprochenen (lokalen) physikalischen Adresse wird somit beim Zugriff auf ein entferntes Net^element einfach der Offset Off addiert, um auf die korrekte physikalische Speicherstelle des entfernten Netzelementes zuzugreifen (lineare Abbildung zwischen dem globalen VM-Bereich und den lokal zugeordneten physikalischen Speicherbereichen) . Da nicht sichergestellt werden kann, dass alle Netzelemente physikalischer Speicher an übereinstimmenden Startadressen S mit gleicher Länge L reservieren können, ist ein Austausch dieser Informationen unter den Netzelementen notwendig. Effektiv ist hier ein Austausch mittels Broadcast oder Multicast über das DMA- Netzwerk. Jedes Netzelement kann dann die Informationen der anderen Netzelemente innerhalb der VN mitlesen und eine LUT-Struktur aufbauen (siehe Tabelle) , über die der aufgespannte globale Adressraum durch einfache lokale Berechnungen (Offsetberechnungen) angesprochen werden kann.
Netzelementnummer 2-Tupel (Startadresse, Länge) Startadresse Länge
0 SO LO
N SN LN

Claims

Patentansprüche
1. Netzwerksystem (1) mit einer Mehrzahl über Netzwerkverbindungen (3) verbundener Netzelemente (2),
wobei jedes der Netzelemente mindestens einen physikalischen Speicher (5) sowie eine DMA- fähige Netzwerkschnittstelle aufweist
und wobei auf jedem Netzelement (2) eine Instanz (VM- Instanz, 12) einer virtuellen Maschine (VM, 11) so ausgebildet ist oder ausbildbar ist, • dass mittels jeder VM-Instanz zumindest ein
Teil des physikalischen Speichers des zugehörigen Netzelements so abtrennbar ist, dass dieser Teil für ein auf diesem Netzelement laufendes oder lauffähiges Betriebssystem (BS) nicht mehr sichtbar ist und dass auf diesen Teil ausschließlich über die virtuelle Maschine zugreifbar ist,
• dass nach dem Abtrennen aller Speicherbereiche durch alle VM-Instanzen untereinander In- formationen über die in den einzelnen Netzelementen jeweils lokal abgetrennten Speicherbereiche austauschbar sind, = dass nach dεm Austauschen aller Informationen auf Basis der in den Netzelementen lokal ab- getrennten Speicherbereiche durch die virtuelle Maschine ein die Netzelemente überspannender, globaler virtueller Speicherbereich (VM-Speicherbereich, 10) ausbildbar ist, wobei jeder Speicherstelle im VM- Speicherbereich eine für alle VM-Instanzen der virtuellen Maschine einheitliche globale virtuelle Adresse zugeordnet ist, welche sich zusammensetzt aus einer dasjenige Netzele- ment, auf der sich die zugehörige physikalische Speicheradresse befindet, eindeutig i- dentifizierenden Information und einer diese physikalische Speicherstelle eindeutig identifizierenden Information, und • dass nach Ausbildung des VM-Speicherbereichs durch eine lokal laufende VM- Instanz (12a) eines der Netzelemente (2a) bei deren Zugriff auf die globale virtuelle Adresse einer sich auf einem weiteren, entfernten Netzelement (2b) befindenden physikalischen Speicherstelle diese physikalische Adresse auf dem entfernten Netzelement (2b) berechenbar und ein DMA-Zugriff mit Quell- und Zieladresse auf den abgetrennten physikalischen Speicherbe- reich des entfernten Netzelements (2b) durchführbar ist zum Austausch von Daten zwischen dem lokalen Netzelement (2a) und dem entfernten Netzelement (2b) .
2. Netzwerksystem (1) nach dem vorhergehenden An- spruch, gekennzeichnet durch mindestens eine auf mindestens einem der Netzwerkelemente ausgebildete oder ausbildbare Anwendung, insbesondere eine parallele Anwendung, für welche der VM- Speicherbereich exklusiv als Rechenspeicher re- serviert ist oder reservierbar ist.
3. Netzwerksystem (1) nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass durch die Anwendung vermittels einer lokal laufenden VM- Instanz ein DMA-Zugriff auf den physikalischen Speicher eines entfernten Netzelementes durchführbar ist.
4. Netzwerksystem (1) nach einem der beiden vorhergehenden Ansprüche, dadurch gekennzeichnet, dass der globale VM-Speicherbereich in den virtuellen
Adressraum der Anwendung eingeblendet ist oder einblendbar ist.
5. Netzwerksystem (1) nach einem der drei vorhergehenden Ansprüche, dadurch gekennzeichnet, dass in mindestens einem der Netzelemente der Teil des physikalischen Speichers zur Laufzeit der Anwendung abtrennbar ist.
6. Netzwerksystem (1) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass in min- destens einem der Netzelemente der Teil des physikalischen Speichers zur Systemstartzeit oder während des Bootvorgangs abtrennbar ist.
7. Netzwerksystem (1) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass auf min- destens einem der Netzelemente getrennt von dem mittels des abgetrennten Speicherbereichs ausgebildeten oder ausbildbaren Adressraumteils des VM-Speicherbereichs ein weiterer Adressraum mittels zumindest einem Teil des nicht abgetrennten Teils des physikalischen Speichers dieses Netzelements ausgebildet ist oder ausbildbar ist, welcher von dem auf diesem Netzelement laufenden oder lauffähigen Betriebssystem verwaltbar ist.
8. Netzwerksystem (1) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die auszutauschenden Informationen durch die VM- Instanzen unmittelbar nach Systemstart oder während des Bootvorgangs austauschbar sind.
9. Netzwerksystem (1) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die auszutauschenden Informationen jeweils die Startadresse und die Länge des jeweils abgetrennten Teils des physikalischen Speichers umfassen.
10. Netzwerksystem (1) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass mindestens einer der abgetrennten physikalischen Speicherteile als linearer physikalischer Speicher- bereich ausgebildet ist oder ausbildbar ist.
11. Netzwerksystem (1) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass genau eines der Netzelemente als Cachenetzelement ausgebildet ist oder ausbildbar ist, indem ein lo- kaier physikalischer Speicherbereich gesondert als globaler Cachespeicher ausgewiesen ist oder ausweisbar ist und indem in diesem Speicherbereich ein über die VM-Instanzen zugreifbares Protokoll gespeichert ist oder speicherbar ist, in welchem vermerkt ist, welche LBUs (load ba- lancing units) einer parallelen Anwendung sich auf welchen Netzelementen befinden.
12. Netzwerksystem (1) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Be- rechnung der physikalischen Adresse auf dem entfernten Netzelement durch die lokale VM-Instanz mittels einer Offsetberechnung durchführbar ist.
13. Netzwerksystem (1) nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass die Berech- nung als Software-Makro in einer Hochsprache o- der durch eine Look-Up-Tabelle, insbesondere durch ein Software-Makro oder durch eine Look- Up-Tabelle in der DMA- fähigen Netzwerk- Schnittstelle, erfolgt.
14. Netzwerksystem (1) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass mindes- tens eine der VM-Instanzen in Form einer Softwarebibliothek und/oder eines Hardwareinterfaces ausgebildet ist.
15. Netzwerksystem (1) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass mindes- tens eine VM-Instanz, bevorzugt jede der VM-
Instanzen Zugriffsrechte auf den VM- Speicherbereich besitzt.
16. Netzwerksystem (1) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die glo- bale virtuelle Adresse ein 2-Tupel ist.
17. Netzwerksystem (1) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die globalen virtuellen Adressen aller VM-Instanzen einen einheitlichen globalen virtuellen Adressraum bilden.
18. Netzwerksystem (1) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Netzelemente (2) Speichereinheiten oder Recheineinheiten, die mindestens ein Rechenwerk aufwei- sen, sind.
T_ Q
Figure imgf000037_0001
Ansprüche, dadurch gekennzeichnet, dass die Übertragung von Daten über die Netzwerkverbindungen (3) zumindest teilweise asynchron er- folgt.
20. Netzwerksystem (1) nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass bei Anforderung der Übertragung von Daten aus Speicherstellen mit einer globalen virtuellen Quell- adresse eines lokalen Netzelementes (2) zu Speicherstellen mit einer globalen virtuellen Zieladresse, die auf dem lokalen Netzelement (2) laufende VM-Instanz (12) aus der globalen virtuellen Quelladresse die lokale physikalische Quelladresse bestimmt und einen lokalen DMA-
Aufruf seiner DMA-fähigen Netzwerk-Schnittstelle zur Übertragung der Daten, die in den durch die lokale physikalische Quelladresse bezeichneten Speicherstellen gespeichert sind, an die Zielad- resse durchführt.
21. Verfahren zur Steuerung verteilter Speicher in einem Netzwerksystem (1) mit einer Mehrzahl über Netzwerkverbindungen (3) verbundener Netzelemente (2), wobei jedes der Netzelemente mindestens einen physikalischen Speicher (5) sowie eine
DMA-fähige Netzwerkschnittstelle aufweist, wobei auf jedem Netzelement (2) eine Instanz (VM-Instanz, 12) einer virtuellen Maschine (VM, 11) ausgebildet wird, wobei mittels jeder VM-Instanz zumindest ein
Teil des physikalischen Speichers des zugehörigen Netzelements so abgetrennt wird, dass dieser Teil für ein auf diesem Netzelement laufendes Betriebssystem (BS) nicht mehr sichtbar ist und dass auf diesen Teil ausschließlich über die virtuelle Maschine zugegriffen werden kann, wobei nach dem Abtrennen aller Speicherbereiche durch alle VM- Instanzen untereinander Informationen über die in den einzelnen Netzelementen je- weils lokal abgetrennten Speicherbereiche ausge- tauscht werden, wobei nach dem Austauschen aller Informationen auf Basis der in den Netzelementen lokal abgetrennten Speicherbereiche durch die virtuelle Maschine ein die Netzelemente überspannender, globaler virtueller Speicherbereich (VM- Speicherbereich, 10) ausgebildet wird, wobei jeder Speicherstelle im VM-Speicherbereich eine für alle VM- Instanzen der virtuellen Maschine einheitliche globale virtuelle Adresse zugeordnet ist, welche sich zusammensetzt aus einer dasjenige Netzelement, auf der sich die zugehörige physikalische Speicheradresse befindet, eindeutig identifizierenden Information und ei- ner diese physikalische Speicherstelle eindeutig identifizierenden Information, und wobei nach Ausbildung des VM-Speicherbereichs durch eine lokal laufende VM-Instanz (12a) eines der Netzelemente (2a) bei deren Zugriff auf die globale virtuelle Adresse einer sich auf einem weiteren, entfernten Netzelement (2b) befindenden physikalischen Speicherstelle diese physikalische Adresse auf dem entfernten Netzelement (2b) berechnet und ein DMA-Zugriff mit Quell- und Zieladresse auf den abgetrennten physikalischen Speicherbereich des entfernten Netzelements (2b) durchgeführt wird zum Austausch von Daten zwischen dem lokalen Netzelement (2a) und dem entfernten Netzelement (2b) .
22. Verfahren zur Steuerung verteilter Speicher in einem Netzwerksystem nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass das Verfahren mit einem Netzwerksystem nach einem der Ansprüche 1 bis 20 durchgeführt wird.
23. Verwendung eines Netzwerksystems und/oder eines Verfahrens nach einem der vorhergehenden Ansprüche zur Zugriffssteuerung, Vereinigung und Vir- tualisierung verteilter Speicher mittels Ferndi- rektspeicherzugriffen (RDMA, remote direct memo- ry access) , insbesondere zur Durchführung paralleler Anwendungen.
PCT/EP2007/006297 2006-07-14 2007-07-16 Netzwerksystem und verfahren zur steuerung parallel existierender adressräume WO2008006622A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP07786099A EP2041659A1 (de) 2006-07-14 2007-07-16 Netzwerksystem und verfahren zur steuerung parallel existierender adressräume
US12/309,270 US20100017802A1 (en) 2006-07-14 2007-07-16 Network system and method for controlling address spaces existing in parallel

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102006032832.9 2006-07-14
DE102006032832A DE102006032832A1 (de) 2006-07-14 2006-07-14 Netzwerksystem und Verfahren zur Steuerung verteilter Speicher

Publications (1)

Publication Number Publication Date
WO2008006622A1 true WO2008006622A1 (de) 2008-01-17

Family

ID=38573428

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2007/006297 WO2008006622A1 (de) 2006-07-14 2007-07-16 Netzwerksystem und verfahren zur steuerung parallel existierender adressräume

Country Status (4)

Country Link
US (1) US20100017802A1 (de)
EP (1) EP2041659A1 (de)
DE (1) DE102006032832A1 (de)
WO (1) WO2008006622A1 (de)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370833B2 (en) 2008-02-20 2013-02-05 Hewlett-Packard Development Company, L.P. Method and system for implementing a virtual storage pool in a virtual environment
US8214576B2 (en) * 2009-03-03 2012-07-03 Vmware, Inc. Zero copy transport for target based storage virtual appliances
US8578083B2 (en) * 2009-03-03 2013-11-05 Vmware, Inc. Block map based I/O optimization for storage virtual appliances
US8825863B2 (en) * 2011-09-20 2014-09-02 International Business Machines Corporation Virtual machine placement within a server farm
US9229901B1 (en) 2012-06-08 2016-01-05 Google Inc. Single-sided distributed storage system
US9058122B1 (en) 2012-08-30 2015-06-16 Google Inc. Controlling access in a single-sided distributed storage system
US9164702B1 (en) 2012-09-07 2015-10-20 Google Inc. Single-sided distributed cache system
US9521028B2 (en) * 2013-06-07 2016-12-13 Alcatel Lucent Method and apparatus for providing software defined network flow distribution
US20150012679A1 (en) * 2013-07-03 2015-01-08 Iii Holdings 2, Llc Implementing remote transaction functionalities between data processing nodes of a switched interconnect fabric
US10454714B2 (en) 2013-07-10 2019-10-22 Nicira, Inc. Method and system of overlay flow control
US10749711B2 (en) 2013-07-10 2020-08-18 Nicira, Inc. Network-link method useful for a last-mile connectivity in an edge-gateway multipath system
US9231863B2 (en) * 2013-07-23 2016-01-05 Dell Products L.P. Systems and methods for a data center architecture facilitating layer 2 over layer 3 communication
US9313274B2 (en) 2013-09-05 2016-04-12 Google Inc. Isolating clients of distributed storage systems
US9886736B2 (en) 2014-01-20 2018-02-06 Nvidia Corporation Selectively killing trapped multi-process service clients sharing the same hardware context
US10425382B2 (en) 2015-04-13 2019-09-24 Nicira, Inc. Method and system of a cloud-based multipath routing protocol
US10135789B2 (en) 2015-04-13 2018-11-20 Nicira, Inc. Method and system of establishing a virtual private network in a cloud service for branch networking
US10498652B2 (en) 2015-04-13 2019-12-03 Nicira, Inc. Method and system of application-aware routing with crowdsourcing
US11252079B2 (en) 2017-01-31 2022-02-15 Vmware, Inc. High performance software-defined core network
US20180219765A1 (en) 2017-01-31 2018-08-02 Waltz Networks Method and Apparatus for Network Traffic Control Optimization
US11706127B2 (en) 2017-01-31 2023-07-18 Vmware, Inc. High performance software-defined core network
US11121962B2 (en) 2017-01-31 2021-09-14 Vmware, Inc. High performance software-defined core network
US10992568B2 (en) 2017-01-31 2021-04-27 Vmware, Inc. High performance software-defined core network
US20200036624A1 (en) 2017-01-31 2020-01-30 The Mode Group High performance software-defined core network
US10992558B1 (en) 2017-11-06 2021-04-27 Vmware, Inc. Method and apparatus for distributed data network traffic optimization
US10778528B2 (en) 2017-02-11 2020-09-15 Nicira, Inc. Method and system of connecting to a multipath hub in a cluster
US10523539B2 (en) 2017-06-22 2019-12-31 Nicira, Inc. Method and system of resiliency in cloud-delivered SD-WAN
US10999100B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider
US10666460B2 (en) 2017-10-02 2020-05-26 Vmware, Inc. Measurement based routing through multiple public clouds
US11089111B2 (en) 2017-10-02 2021-08-10 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US10999165B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Three tiers of SaaS providers for deploying compute and network infrastructure in the public cloud
US11115480B2 (en) 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US11223514B2 (en) 2017-11-09 2022-01-11 Nicira, Inc. Method and system of a dynamic high-availability mode based on current wide area network connectivity
US11252105B2 (en) 2019-08-27 2022-02-15 Vmware, Inc. Identifying different SaaS optimal egress nodes for virtual networks of different entities
US11044190B2 (en) 2019-10-28 2021-06-22 Vmware, Inc. Managing forwarding elements at edge nodes connected to a virtual network
US11394640B2 (en) 2019-12-12 2022-07-19 Vmware, Inc. Collecting and analyzing data regarding flows associated with DPI parameters
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
US11722925B2 (en) 2020-01-24 2023-08-08 Vmware, Inc. Performing service class aware load balancing to distribute packets of a flow among multiple network links
US11245641B2 (en) 2020-07-02 2022-02-08 Vmware, Inc. Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN
US11709710B2 (en) 2020-07-30 2023-07-25 Vmware, Inc. Memory allocator for I/O operations
US11575591B2 (en) 2020-11-17 2023-02-07 Vmware, Inc. Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN
US11575600B2 (en) 2020-11-24 2023-02-07 Vmware, Inc. Tunnel-less SD-WAN
US11929903B2 (en) 2020-12-29 2024-03-12 VMware LLC Emulating packet flows to assess network links for SD-WAN
CN116783874A (zh) 2021-01-18 2023-09-19 Vm维尔股份有限公司 网络感知的负载平衡
US11979325B2 (en) 2021-01-28 2024-05-07 VMware LLC Dynamic SD-WAN hub cluster scaling with machine learning
US11388086B1 (en) 2021-05-03 2022-07-12 Vmware, Inc. On demand routing mesh for dynamically adjusting SD-WAN edge forwarding node roles to facilitate routing through an SD-WAN
US11729065B2 (en) 2021-05-06 2023-08-15 Vmware, Inc. Methods for application defined virtual network service among multiple transport in SD-WAN
US11489720B1 (en) 2021-06-18 2022-11-01 Vmware, Inc. Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics
US11375005B1 (en) 2021-07-24 2022-06-28 Vmware, Inc. High availability solutions for a secure access service edge application
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005106659A1 (en) 2004-04-26 2005-11-10 Virtual Iron Software, Inc. System and method for managing virtual servers

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
US7739684B2 (en) * 2003-11-25 2010-06-15 Intel Corporation Virtual direct memory access crossover
US7334076B2 (en) * 2005-03-08 2008-02-19 Microsoft Corporation Method and system for a guest physical address virtualization in a virtual machine environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005106659A1 (en) 2004-04-26 2005-11-10 Virtual Iron Software, Inc. System and method for managing virtual servers

Also Published As

Publication number Publication date
DE102006032832A1 (de) 2008-01-17
US20100017802A1 (en) 2010-01-21
EP2041659A1 (de) 2009-04-01

Similar Documents

Publication Publication Date Title
EP2041659A1 (de) Netzwerksystem und verfahren zur steuerung parallel existierender adressräume
DE112010003554B4 (de) Symmetrische Direktmigration von Virtuellen Maschinen
DE60015395T2 (de) Speicher, der zwischen verarbeitenden threads geteilt ist
DE69724355T2 (de) Erweiterte symmetrische Multiprozessorarchitektur
DE10232926B4 (de) Verfahren zum Aufrechterhalten der Kohärenz in einer hierarchischen Cacheanordnung eines Computersystems
DE60011797T2 (de) Ausführung von mehreren fäden in einem parallelprozessor
DE69734129T2 (de) Hierarchisches Datenverarbeitungssystem mit symetrischen Multiprozessoren
DE112012004550B4 (de) Verfahren, System und Vorrichtung zur Zustandsmigration für einen Remote Direct Memory Access-Adapter in einer virtuellen Umgebung
DE19983737B3 (de) System zum Neuordnen von Befehlen, die von einer Speichersteuerung zu Speichervorrichtungen ausgegeben werden, unter Verhinderung von Kollision
DE60215007T2 (de) Multiprozessorsystem und verfahren zum betrieb eines multiprozessorsystems
DE69822541T2 (de) Verfahren zum Verwalten eines geteilten Speichers
DE60006270T2 (de) Parallele prozessorarchitektur
DE69735575T2 (de) Verfahren und Vorrichtung zur Unterbrechungsverteilung in einem skalierbaren symmetrischen Mehrprozessorsystem ohne die Busbreite oder das Busprotokoll zu verändern
DE102008062044B4 (de) 1Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration
DE102007048601A1 (de) Datenspeicherung in einem Schaltsystem, das mehrere Prozessoren eines Computersystems koppelt
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE112009000411T5 (de) Verfahren und System zum Implementieren eines virtuellen Speicherpools in einer virtuellen Umgebung
DE112008002019T5 (de) Auslagern von Eingabe/Ausgabe (I/O)-Virtualisierungsarbeitsgängen an einem Prozessor
DE2917441B2 (de) Verfahren und Schaltungsanordnung zur datenwegunabhängigen Reservierung, Freigabe und Wiederverbindung nach Unterbrechung von Ein- und/oder Ausgabegeräten und Speichergeräten in einen datenverarbeitenden Multiprozessorsystem
DE112018006769B4 (de) Erweiterte zwischenspeicherzuweisung basierend auf virtuellen knotenressourcen
DE102015102692A1 (de) Verfahren zum Optimieren von Netzdatenströmen in einem eingeschränkten System
EP2786258A1 (de) System, computer-implementiertes verfahren und computerprogrammprodukt zur direkten kommunikation zwischen hardwarebeschleunigern in einem computercluster
DE602005006338T2 (de) Vorrichtung und Verfahren zur Datenübertragungsverarbeitung
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE112005003222T5 (de) Dynamische Allokation eines Puffers auf mehrere Klienten bei einem Prozessor mit Threads

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07786099

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2007786099

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2007786099

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: RU

WWE Wipo information: entry into national phase

Ref document number: 12309270

Country of ref document: US