CN104346304A - 使用存储器控制器来请求资源的方法和系统 - Google Patents

使用存储器控制器来请求资源的方法和系统 Download PDF

Info

Publication number
CN104346304A
CN104346304A CN201410354471.2A CN201410354471A CN104346304A CN 104346304 A CN104346304 A CN 104346304A CN 201410354471 A CN201410354471 A CN 201410354471A CN 104346304 A CN104346304 A CN 104346304A
Authority
CN
China
Prior art keywords
resource
memory controller
storage space
request
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410354471.2A
Other languages
English (en)
Other versions
CN104346304B (zh
Inventor
E·R·科德罗
V·K·瓦吉塞
D·B·维德亚普尔纳查里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104346304A publication Critical patent/CN104346304A/zh
Application granted granted Critical
Publication of CN104346304B publication Critical patent/CN104346304B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

提供了一种使用存储器控制器来请求资源的方法和系统。特定方法可包括由存储器控制器向计算机程序传送用于资源的请求,并且响应于来自计算机程序的资源可用的指示而使用资源。另一特定方法可包括向存储器控制器传送用于存储器的存储器空间或第二资源中的至少一项的请求。可将存储器控制器配置成从第一资源向计算机程序传送请求。另一特定方法还可包括由第一资源响应于存储器空间或第二资源中的至少一项可用的指示而使用存储器空间或第二资源中的至少一项。

Description

使用存储器控制器来请求资源的方法和系统
技术领域
本公开一般地涉及计算机存储器架构,并且具体地涉及请求存储器空间和资源以及处理用于存储器空间和资源的请求。
背景技术
计算机系统可具有请求和共享该系统资源(例如,存储器和处理器)的多种硬件设备。设备驱动器通常充当硬件设备与管理资源的软件之间的桥梁。通过设备驱动器,软件可能能够确定哪些设备在系统上,可请求资源的设备和可从软件对其准许资源的设备。
然而,存储器控制器通常不具有像其他硬件设备一样的共享资源或被另一实体用于共享资源的能力。此外,存储器控制器通常不具有用以像其他硬件设备一样共享资源的设备驱动器。
发明内容
在特定实施例中,提供了一种使用存储器控制器来请求资源的方法。该方法可包括由存储器控制器向计算机程序传送用于资源的请求,其中,该存储器控制器被配置成将存储器初始化,并且其中,所述存储器控制器被配置成按照指示对存储器执行操作,并且其中,计算机程序被配置成响应于用于资源的请求而使得资源可用。该方法还可包括由存储器控制器响应于来自计算机程序的资源可用的指示而使用资源。
在特定实施例中,提供了一种使用存储器控制器来请求存储器空间或资源中的至少一项的方法。该方法可以包括由存储器控制器从第一资源接收用于存储器的存储器空间或第二资源中的至少一项的请求,其中,存储器控制器被配置成将来自第一资源的请求传送到计算机程序,其中,存储器控制器被配置成将存储器初始化,并且其中,存储器控制器被配置成按照指示对存储器执行操作,并且其中,计算机程序被配置成响应于用于存储器的存储器空间和资源的请求而使得存储器的存储器空间和资源可用。该方法还可包括由存储器控制器响应于来自计算机程序的存储器空间或第二资源中的至少一项可用的第二指示而向第一资源传送存储器空间或第二资源中的至少一项可用的第一指示。
在特定实施例中,提供了一种使用存储器控制器来请求存储器空间或资源中的至少一项的方法。该方法可包括由第一资源向存储器控制器传送用于存储器的存储器空间或第二资源中的至少一项的请求,其中,存储器控制器被配置成将来自第一资源的请求传送至计算机程序,其中,存储器控制器被配置成将存储器初始化,并且其中,存储器控制器被配置成按照指示对存储器执行操作,并且其中,计算机程序被配置成响应于用于存储器的存储器空间和资源的请求而使得存储器的存储器空间和资源可用。该方法还可包括由第一资源响应于存储器空间或第二资源中的至少一项可用的指示而使用存储器空间或第二资源中的至少一项。
在附加于此并形成本公开的另一部分的权利要求中阐述了表征本公开的实施例的这些及其他优点和特征。然而,为了更好地理解本公开和通过其使用获得的优点和目的,应对附图和所附描述性内容进行参考,其中描述了本公开的示例性实施例。
附图说明
图1A是被配置成处理来自存储器控制器的用于存储器空间和/或资源的请求的计算系统的框图。
图1B是被配置成处理来自存储器控制器的用于存储器空间和/或资源(例如,第二资源)的计算系统的框图,其中,该请求由第一资源(例如,处理器资源)生成。
图1C是被配置成处理来自存储器控制器的用于存储器空间和/或资源(例如,第二资源)的计算系统的框图,其中,该请求由第一资源(例如,输入—输出资源)生成。
图2是图1A—1C的计算系统的主要软件和硬件部件的框图。
图3是可由图1A—2的计算系统执行的由存储器控制器请求存储器空间和/或资源的第一方法的实施例的流程图。
图4是可由图1A—2的计算系统执行的由管理程序处理来自存储器控制器的用于存储器空间和/或资源的第一方法的实施例的流程图。
图5是可由图1A-2的计算系统执行的由操作系统处理来自存储器控制器的用于存储器空间和/或资源的第一方法的实施例的流程图。
图6是可由图1A-2的计算系统执行的由进程处理来自存储器控制器的用于存储器空间和/或资源的第一方法的实施例的流程图。
图7是可由图1A—2的计算系统执行的将存储器空间拷贝到存储器控制器的独有存储器空间的第一方法的实施例的流程图。
图8是可由图1A-2的计算系统执行的由第一资源(例如,处理器资源或输入—输出资源)使用存储器控制器来请求存储器空间和/或资源的第一方法的实施例的流程图。
具体实施方式
系统和方法的实施例允许存储器控制器以与另一硬件设备类似或相同的方式共享资源(例如,存储器)。例如,设备驱动器可被存储器控制器用来与计算机程序(例如,软件)通信并从计算机程序请求资源(例如,存储器空间)。计算机程序可运行设备驱动器。存储器控制器可在不同时间以及由于不同原因而请求不同量的存储器空间。计算机程序可响应于该请求经由设备驱动器向存储器控制器分配存储器空间。存储器控制器可使用已由计算机程序为其分配的存储器空间。
存储器控制器可通过设备驱动器进行通信。设备驱动器可与计算机程序通信以像另一硬件设备或者甚至另一应用程序一样共享资源。计算机程序可以是管理程序(hypervisor)计算机程序(“管理程序”)、操作系统计算机程序(“操作系统”或“OS”)、进程计算机程序(“进程”)、基本输入输出系统计算机程序(“BIOS”)或键盘视频鼠标计算机程序(“KVM”)中的至少一项。被配置成使得存储器空间和/或资源可用的计算机程序可取决于计算机系统的特定配置。例如,在特定实施例中,计算机系统可不包括管理程序;替代地,可将该计算机系统的操作系统配置成响应于用于存储器空间和/或资源的请求而使得存储器空间和/或资源可用。因此,在该特定实施例中,操作系统可运行设备驱动器且存储器控制器可通过与操作系统通信的设备驱动器进行通信以像另一硬件设备或者甚至另一应用程序一样共享资源。该计算机程序可实际上是被配置成响应于用于存储器空间和/或资源的请求而至少使得存储器的存储器空间和/或资源可用的任何程序代码。下面讨论用于资源的请求。
为了简单起见,在本文中利用诸如计算机程序被配置成响应于用于存储器空间和/或资源的请求而使得存储器的存储器空间和/或资源可用之类的术语。该术语可仅包括存储器空间和/或资源的分配、存储器空间和/或资源的解除分配和分配、仅存储器空间和/或资源解除分配或者实际上使得存储器的存储器空间和/或资源对于存储器控制器可用的任何方式。存储器空间和/或资源的可用性可快速地改变且可取决于确定时刻的数据。因此,诸如“存储器空间和/或资源可用”或“存储器空间和/或资源可供使用”之类的术语可分别地包括“存储器空间和/或资源可能可用”或“存储器空间和/或资源可能可供使用”。
所请求的存储器空间可对应于可以是物理存储器的存储器,例如所请求的存储器空间可对应于但不限于物理存储器的页面、区域或物理地址。可将存储器空间(或页面)固定(pin)并从虚拟映射到物理存储器。为了简单起见,在本文中利用术语“存储器空间”。
除共享资源之外,可将存储器控制器配置成充当存储器的守卫。作为守卫,可将存储器控制器配置成将存储器初始化并按照指示对存储器执行操作。例如,在初始化时段(例如,启动)期间,存储器控制器可用设置将计算机系统的存储器初始化,对存储器的接口进行校准,执行访问以测试存储器,并确保存储器可在计算机系统中适当地被利用。一旦初始化时段完成,存储器控制器可将存储器的控制交给计算机程序(例如,管理程序或操作系统),并且计算机程序控制存储器及其内容。
在初始化时段之后,存储器控制器可按照指示对存储器执行操作(例如,按照指示对存储器执行读取和写入操作)。然而,存储器控制器可能在初始化时段之后不能控制存储器,尽管有其作为存储器守卫的作用。存储器控制器还可用内设的错误检测、纠正结构和/或冗余存储器位来保证存储器内容的数据完整性,但存储器及其内容可被保留给计算机程序。在初始化时段之后因此可包括在存储器控制器已将存储器初始化并将存储器的控制放弃交给计算机程序(例如,管理程序或操作系统)之后的时段。
在初始化时段之后,存储器控制器可协助处理器和对存储器的输入/输出访问,但是存储器控制器在初始化时段之后可不直接地控制存储器及其内容。替代地,在初始化时段之后,计算机程序可控制存储器及其内容。例如,管理程序可控制如何向操作系统(OS)实例分配存储器,并且每个OS实例可控制如何将其被分配的存储器进一步分配给用户进程。结果,即使存储器控制器是存储器的守卫,存储器控制器也可能不能在没有允许存储器控制器请求存储器的存储器空间(例如,从管理程序)的本文公开实施例的情况下在初始化时段之后获得任何内存。
因此,存储器控制器可能能够将用于存储器的存储器空间的请求传送至计算机程序以及将存储器初始化并按照指示对存储器执行操作。存储器控制器可通过存储器控制器的设备驱动器与计算机程序通信,并且计算机程序可运行该设备驱动器。存储器控制器可响应于来自计算机程序的存储器空间可用的指示而使用存储器空间。可将计算机程序配置成响应于用于存储器空间的请求、诸如来自存储器控制器的用于存储器空间的请求而使得存储器的存储器空间可用。
存储器控制器可使用以多种方式可用的存储器空间。例如,存储器控制器可将存储器空间用于测试、校准、追踪、高速缓存、优化、计算、变换、加密、解密、预取、分页、预编码、预解码、压缩、解压缩、重映射、做镜像(mirrowing)、做影(shadowing)或作为便笺式存储器(scratch pad)中的至少一项。存储器控制器的存储器空间使用可导致灵活性、数据完整性、系统性能、系统效率、系统可靠性、准确度等方面的改善。
其次,在本文中还提供了允许存储器控制器请求其他资源而不仅仅是存储器空间的实施例。例如,存储器控制器可请求诸如处理器资源(例如,CPU等)之类的资源。存储器控制器还可请求诸如输入/输出资源(例如,存储设备、SSD、DASD、直接附接设备(DAD)、输入/输出(I/O)控制器、网络控制器等)之类的资源。存储器控制器可按照本文所讨论的实施例实际上请求任何其他资源。
此外,存储器控制器可用单个请求来请求仅存储器空间、仅资源或者存储器空间和资源两者。作为示例,在初始化时段之后,存储器控制器可通过设备驱动器或虚拟设备驱动器中的至少一项向计算机程序传送用于仅存储器空间、用于仅资源或用于存储器空间和资源两者的请求。计算机程序可以是管理程序计算机程序、操作系统计算机程序、进程计算机程序、基本输入输出系统计算机程序或键盘视频鼠标计算机程序中的至少一项。此外,存储器控制器可请求单个资源或多个资源、特定资源或一般资源等。
存储器控制器可响应于来自计算机程序的资源可用的指示而使用资源。存储器控制器可以多种方式来使用可用的资源。存储器控制器可将资源用于上游数据处理或上游数据存储中的至少一项。存储器控制器可将资源用于下游数据处理或下游数据存储中的至少一项。例如,存储器控制器可将资源用于测试、校准、追踪、高速缓存、优化、计算、变换、加密、解密、预取、分页、预编码、预解码、压缩、解压缩、重映射、做镜像、做影或作为便笺式存储器中的至少一项。使用资源可包括由存储器控制器与资源互锁。
第三,在本文中还提供了允许存储器控制器被第一资源用于请求存储器空间或资源中的至少一项的实施例。例如,在初始化时段之后,第一资源可向存储器控制器传送用于存储器的存储器空间或第二资源中的至少一项的请求。第一资源可以是处理器资源(例如CPU等)或输入/输出资源(例如存储设备、SSD、DASD、直接附接设备(DAD)、输入/输出(I/O)控制器、网络控制器等)中的至少一项。此外,第二资源可以是处理器资源或输入/输出资源中的至少一项。例如,存储器控制器可从处理器资源接收用于存储器空间、用于处理器资源、用于输入/输出资源和/或某个其他资源的请求。可替换地,存储器控制器可从输入/输出资源接收用于存储器空间、用于处理器资源、用于输入/输出资源和/或某个其他资源的请求。
在接收到来自第一资源接的请求之后,可将存储器控制器配置成将来自第一资源的请求传送至计算机程序。来自第一资源的请求可用于仅存储器空间、仅第二资源或存储器空间和第二资源两者。例如,存储器控制器可通过设备驱动器或虚拟设备驱动器向计算机程序传送用于仅存储器空间、用于仅第二资源或用于存储器空间和第二资源两者的请求。计算机程序可以是管理程序计算机程序、操作系统计算机程序、进程计算机程序、基本输入输出系统计算机程序或键盘视频鼠标计算机程序中的至少一项。第一资源可请求例如单个第二资源或多个第二资源、指定第二资源或一般第二资源等。
存储器控制器可响应于来自计算机程序的存储器空间或第二资源中的至少一项可用的第二指示而向第一资源传送存储器空间或第二资源中的至少一项可用的第一指示。并且,第一资源可响应于来自存储器控制器的存储器空间或第二资源中的至少一项可用的第一指示而使用存储器空间或第二资源中的至少一项。
第一资源可以多种方式来使用可用的存储器空间或第二资源中的至少一项。第一资源可将存储器空间或第二资源中的至少一项用于上游数据处理或上游数据存储中的至少一项。第一资源可将存储器空间或第二资源中的至少一项用于下游数据处理或下游数据存储中的至少一项。第一资源可将存储器空间或第二资源中的至少一项用于测试、校准、追踪、高速缓存、优化、计算、变换、加密、解密、预取、分页、预编码、预解码、压缩、解压缩、重映射、做镜像、做影或作为便笺式存储器中的至少一项。
术语“存储器空间或资源中的至少一项”和“存储器的存储器空间或第二资源中的至少一项”在本文中可与“存储器空间和/或资源”互换地使用。本领域的技术人员可认识到实际上可使用存储器控制器来请求任何存储器空间、任何资源或其组合。存储器控制器可请求存储器空间和/或资源以供其使用,以及代表另一资源(例如,第一资源)请求存储器空间和/或资源(例如,第二资源)。
因此,存储器控制器可为其本身或代表第一资源来请求存储器空间和/或资源。可做出并准许用于存储器空间和/或资源的独有使用的请求。此外,存储器控制器可与常规方法并排地执行此作用以便获得存储器空间和/或资源,并且可响应于来自存储器控制器的用于其本身或代表第一资源的用于存储器空间和/或资源的请求而将未被常规方法利用的存储器空间和/或资源分配给存储器控制器或第一资源。通过扩展存储器控制器的作用,存储器空间和/或资源的利用可得以改善,这又可导致速度和效率的改善。
转到图1A,该图示出了被配置成处理来自存储器控制器的用于存储器空间和/或资源的请求(例如,在初始化时段之后传送的请求)的装置100的第一实施例的概述。可做出并准许用于存储器空间和/或资源的独有使用的请求。图1A的装置100还可使用存储器控制器来处理由第一资源生成的用于存储器空间和/或资源的请求,如结合图1B—1C所讨论的。返回图1A,在特定实施例中,装置100可包括计算机、计算机系统、计算系统、计算设备、服务器、磁盘阵列、客户端计算实体或其他可编程设备,诸如多用户计算机、单用户计算机、手持式设备、联网设备(包括采取集群配置的计算机)、移动电话、视频游戏控制台(或其他游戏系统)等。可将系统100称为逻辑分区计算系统或计算系统,但是可为了简洁起见而称为计算机。计算机101的一个适当实施方式可以是多用户计算机,诸如可从国际商用机器公司(IBM)获得的计算机。
计算机101可包括硬件层102、在硬件层102之上的管理程序层104、在管理程序层104之上的操作系统层106以及在操作系统层106之上的用户进程层或仅仅是进程层108。诸如在来自层102、104、106、108的区域112中所示的那些之类的单元可用来生成和处理来自存储器控制器114的用于存储器空间和/或资源的请求118以及将存储器110初始化并按照(例如,由管理程序层104、操作系统层106和/或进程层108的)指示对其执行操作。可做出并准许用于存储器空间和/或资源的独有使用的请求118。
请注意,虽然图1A—1C和图2包括响应于用于存储器空间和/或资源的请求而使得存储器空间和/或资源可用的管理程序,管理程序在某些实施例中不是必需的。例如,在特定实施例中,图1A—1C的装置100可不包括管理程序层104或其项目,并且替代地,操作系统层106的操作系统132可以是使得存储器空间和/或资源可供使用的计算机程序。此外,在某些实施例中,计算机程序可以不是管理程序或操作系统。例如,装置100的特定实施例可简单地包括存储器控制器114可与之通信并从其请求存储器空间和/或资源的计算机程序,并且可将存储器程序配置成响应于用于存储器空间和/或资源的请求、诸如请求118而使得(例如存储器110的)存储器空间和/或资源(例如处理器120、网络控制器122和/或I/O控制器124)可用。计算机程序可简单地“认为”其拥有机器,并被配置成当被请求使得(例如存储器110的)存储器空间和/或资源(例如处理器120、网络控制器122和/或I/O控制器124)可用时这样做。
返回计算机101,硬件层102可包括存储器110、具有存储器控制器逻辑116(例如硬件逻辑)的存储器控制器114、用于(例如存储器110的)存储器空间和/或资源(例如处理器120、网络控制器122和/或I/O控制器124)的请求118、存储器控制器(“MC”)存储器空间119以及MC资源155。存储器110可以是用于计算机101的主储存器,并且可包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、双列直插式存储器模块(DIMM)、闪速存储器、硬盘驱动器和/或另一数字存储介质。可将存储器110耦合到存储器控制器114。
可将存储器控制器逻辑116配置成使得存储器控制器114生成请求118并通过存储器控制器(“MC”)设备驱动器129传送至管理程序层104的管理程序126。还可将存储器控制器逻辑116配置成将存储器110初始化并按照(例如,由管理程序层104、操作系统层106和/或进程层108的)指示对存储器110执行操作。MC存储器空间119意图举例说明响应于请求118而被(例如,管理程序126经由MC设备驱动器129或其他计算机程序)使得可供存储器控制器114使用的存储器110的至少一个存储器空间。MC资源155意图举例说明响应于请求118而被(例如,管理程序126经由MC设备驱动器129或其他计算机程序)使得可供存储器控制器114使用的至少一个资源。还可将存储器控制器逻辑116配置成响应于来自管理程序126的存储器空间和/或资源可用的指示(例如,中断、确认、数据等)而使得存储器控制器114使用MC存储器空间119和/或MC资源155。
计算机101的硬件层102还可包括至少一个物理处理器120以及至少一个总线(未示出)。例如,该总线可以是电力总线。处理器120可以是多线程和/或可具有多个核。硬件层102还可包括网络控制器122和I/O控制器124。网络控制器122可提供对至少一个网络的接入。I/O控制器124可提供对至少一个I/O设备的访问。因此,可经由总线和未示出的多个接口设备将计算机101耦合到许多外部输入/输出(I/O)设备,所述多个接口设备例如工作站控制器和/或存储控制器,其分别地提供对一个或多个工作站和/或诸如随机存取存储设备(DASD)之类的一个或多个存储设备的外部访问。还可将总线耦合到可由计算机101的用户操作以输入数据(例如,用户输入源可包括鼠标、键盘等)的用户输入(未示出)和可操作用于显示来自计算机101的数据的显示器(未示出)(例如,该显示器可以是CRT监视器、LCD显示面板等)。还可将计算机101配置为分布式计算环境的成员并通过网络与该分布式计算环境的其他成员通信。
管理程序层104可包括管理程序126、管理程序存储器空间127(例如,对应于管理程序126的对管理程序126控制的物理存储器110的分配)、管理程序资源156(例如,对应于管理程序126的对管理程序126控制的处理器120、网络控制器122和/或I/O控制器的分配)、管理程序128(例如,以表示管理程序126的程序代码)、MC设备驱动器129以及管理程序中断处理程序130。具体而言,在管理程序层104中图示出MC设备驱动器129,因为管理程序126可运行MC设备驱动器以与存储器控制器114通信。例如,MC设备驱动器129可从管理程序126请求存储器110的存储器空间,诸如4k页面,并且该4k页面可用来通过存储器控制器114向MC设备驱动器129至管理程序126进行通信以用于计算机101的其余操作。可经由MC设备驱动器129将请求118传送至管理程序126。在某些实施例中,MC设备驱动器129还可具有像管理程序126一样为其分配的存储器空间和/或资源,并且MC设备驱动器129的这些存储器空间和/或这些资源可用来对存储器控制器114的请求118做出响应。因此,管理程序存储器空间127和/或管理程序资源156还可表示MC设备驱动器129的存储器空间和/或资源或者实际上可在请求之后被使得可用的在此层级的任何存储器空间和/或资源。管理程序126可运行用于其他设备的其他设备驱动器,诸如驱动器125、131。
尽管如此,可利用管理程序128、MC设备驱动器129或管理程序中断处理程序130中的至少一项来处理请求118,取决于特定实施例。例如,存储器控制器114可将请求118传送至与管理程序126通信的MC设备驱动器129。存储器控制器114可生成关于请求118的中断,并且该中断可由MC设备驱动器129处理。可替换地或附加地,在某些实施例中可由管理程序中断处理程序130来处理该中断。在某些实施例中,MC设备驱动器129可主要负责处理来自存储器控制器114的请求118。
可将管理程序128、MC设备驱动器129或管理程序中断处理程序130中的至少一项配置成确定从管理程序存储器空间127和/或管理程序资源156是否可获得存储器空间和/或资源。如果存储器空间和/或资源可用于满足请求118,则管理程序128、MC设备驱动器129或管理程序中断处理程序130中的至少一项可将管理程序存储器空间127和/或管理程序资源156解除分配和/或相应地向存储器控制器114分配存储器空间和/或资源。在某些实施例中,MC设备驱动器129甚至可确定MC设备驱动器129是否具有可用存储器和/或可用资源以满足请求118和是否通过此存储器空间和/或此资源来满足请求118。可由管理程序128、MC设备驱动器129或管理程序中断处理程序130中的至少一项生成指示(例如,来自存储器控制器114的对中断的确认)并传送至存储器控制器114以指示存储器空间和/或资源可用。
如果从管理程序存储器空间127和/或管理程序资源156不可获得存储器空间和/或资源,则管理程序128、MC设备驱动器129或管理程序中断处理程序130中的至少一项可确定从操作系统层106和/或从进程层108是否可获得存储器空间和/或资源。管理程序128、MC设备驱动器129或管理程序中断处理程序130中的至少一项可基于该确定而向存储器控制器114发送从管理程序126不可获得存储器空间和/或资源的指示、从操作系统(“OS”)132可获得存储器空间和/或资源的指示或者从进程150可获得存储器空间和/或资源的指示中的至少一项。
因此,存储器控制器114经由OS虚拟设备驱动器136可响应于来自管理程序126的指示而向操作系统层106传送用于存储器空间和/或资源的请求118。操作系统层104可包括OS132、对应于OS132的对(例如,来自管理程序126的)存储器空间的分配的OS存储器空间133、对应于OS132的对(例如,来自管理程序126的)处理器120、网络控制器122和/或I/O控制124的分配的OS资源157、OS134(例如OS132的程序代码)、OS虚拟设备驱动器136以及OS中断处理程序138。例如,OS虚拟设备驱动器136可表现得像MC设备驱动器129,并且存储器控制器114可向与OS132通信的OS虚拟设备驱动器136传送请求118。还可在操作系统层104中加载其他项目,例如,诸如驱动器140、142之类的其他驱动器(例如,其他虚拟驱动器)、诸如用于联网的服务器144和用于磁盘交换控制的服务146之类的服务以及内核148。
在某些实施例中,OS虚拟设备驱动器136可具有为其分配的存储器空间和/或资源,并且OS虚拟设备驱动器136的这些存储器空间和/或这些资源可用来对存储器控制器114的请求118做出响应。因此,OS存储器空间133和/或OS资源157还可表示OS虚拟设备驱动器136的存储器空间和/或资源或者实际上可在请求之后被使得可用的在此层级的任何存储器空间和/或资源。
尽管如此,可利用OS134、OS虚拟设备驱动器136以及OS中断处理程序138中的至少一项来处理请求118,取决于特定实施例。例如,存储器控制器114可将请求118传送至与OS132通信的OS虚拟设备驱动器136。存储器控制器114可生成关于请求118的中断,并且该中断可由OS虚拟设备驱动器136处理。可替换地或附加地,在某些实施例中可由OS中断处理程序138来处理该中断。在某些实施例中,OS虚拟设备驱动器136可主要负责处理来自存储器控制器114的请求118。
可将OS134、OS虚拟设备驱动器136和OS中断处理程序138中的至少一项配置成确定从OS存储器空间133和/或OS资源157是否可获得存储器空间和/或资源。如果存储器空间和/或资源可用于满足请求118,则OS134、OS虚拟设备驱动器136或OS中断处理程序138中的至少一项可将OS存储器空间133和/或OS资源157解除分配和/或相应地向存储器控制器114分配存储器空间和/或资源。在某些实施例中,OS虚拟设备驱动器136甚至可确定OS虚拟设备驱动器136是否具有可用存储器和/或可用资源以满足请求118和是否通过此存储器空间和/或此资源来满足请求118。可生成指示(例如,来自存储器控制器114的对中断的确认)并由OS134、OS虚拟设备驱动器136或OS中断处理程序138中的至少一项传送至存储器控制器114以指示存储器空间和/或资源可用。类似地,如果不可用,则可生成指示并发送到存储器控制器114以指示从OS132不可获得存储器空间和/或资源。
MC存储器空间119可表示响应于请求118而被(例如,OS132或其他计算机程序)使得可供存储器控制器114使用的存储器110的至少一个存储器空间。MC资源155可表示响应于请求118而被(例如,OS132或其他计算机程序)使得可供存储器控制器114使用的至少一个资源。
可替换地,存储器控制器114可将用于存储器空间和/或资源的请求118发送到进程层108,例如由于OS虚拟设备驱动器136引发进程150而不是使用其自己的存储器空间和/或其自己的资源和OS132的存储器空间和/或资源。作为另一示例,可创建进程150并使其专用于辅助请求118的处理,并且可响应于来自管理程序126的指示而将请求118传送至进程层108。
进程层108可包括进程150、对应于进程150的对(例如,来自操作系统层106的)存储器空间分配的进程存储器空间151、对应于进程150的对(例如,来自操作系统层106的)处理器120、网络控制器122和/或I/O控制器124的分配的进程资源158以及其他诸如进程152、154的其他进程。进程150可从存储器控制器114接收用于存储器空间和/或资源的请求118并从OS132请求存储器空间和/或资源。例如,如果从OS132为进程提供存储器空间和/或资源,则进程150可向存储器控制器114发送存储器空间和/或资源可用的指示。请注意,在本文中为了简单起见而使用术语“进程”,但进程150可以是应用程序或其他实体。
MC存储器空间119可表示响应于请求118而被(例如,进程150或其他计算机程序)使得可供存储器控制器114使用的存储器110的至少一个存储器空间。MC资源155可表示响应于请求118而被(例如,进程150或其他计算机程序)使得可供存储器控制器114使用的至少一个资源。
因此,在图1A中,存储器控制器114可经由请求118来请求如箭头160所示的(例如,与存储器110相关联的)存储器空间。可将请求118传送至管理程序层104、操作系统层106和/或进程层108(如箭头162一般地所示),并且可如上文所解释地处理请求118。
此外,可将图1A的装置100配置成处理来自存储器控制器的用于资源的请求(例如,在初始化时段之后传送的请求)。例如,存储器控制器114可用请求118来请求资源(例如,诸如如箭头164所示的处理器120之类的处理器资源、诸如如箭头166所示的网络控制器122之类的输入—输出资源和/或诸如如箭头168所示的I/O控制器124之类的输入—输出资源)。请求118可适当地用于仅资源或用于资源和存储器空间两者。]可将请求118传送至管理程序层104、操作系统层106和/或进程层108(如箭头162一般地所示)。存储器控制器114可以与请求存储器空间类似的方式来请求资源。此外,可以与处理用于存储器空间的请求类似的方式来处理来自存储器控制器的用于资源的请求。
请注意,在图1A中,可由存储器控制器114来生成用于存储器空间和/或资源的请求118。此外,可将存储器空间和/或资源分配给存储器控制器114并被存储器控制器114以多种方式使用。可替换地或附加地,存储器控制器114可代表第一资源请求存储器空间和/或资源,如图1B—1C中所示。
图1B是被配置成处理来自存储器控制器的用于存储器空间和/或资源(例如,第二资源)的计算系统的框图,其中,该请求由第一资源(例如,处理器资源)生成。例如,在初始化时段之后,处理器120可生成请求118并传送至存储器控制器114以获得存储器110的存储器空间或网络控制器122、I/O控制器124等的第二资源中的至少一项(如箭头170一般地所示)。存储器控制器114可从处理器120接收请求118。可由存储器控制器114将请求118传送至管理程层序104、操作系统层106和/或进程层108(如箭头162一般地所示)。可如上文结合图1A中的请求存储器空间和/或资源所解释地处理请求118。
存储器控制器114可响应于来自管理程序层104、操作系统层106和/或进程层108的存储器空间或第二资源中的至少一项可用的第二指示而向处理器120传送存储器空间或第二资源中的至少一项可用的第一指示。处理器120可以多种方式响应于来自存储器控制器114的存储器空间或第二资源中的至少一项可用的第一指示而使用存储器空间或第二资源中的至少一项。
图1C是被配置成处理来自存储器控制器的用于存储器空间和/或资源(例如,第二资源)的计算系统的框图,其中,该请求由第一资源(例如,输入-输出资源)生成。例如,在初始化时段之后,网络控制器122可生成请求118并传送至存储器控制器114以获得存储器110的存储器空间或处理器120、I/O控制器124等的第二资源中的至少一项(如箭头172一般地所示)。作为另一示例,在初始化时段之后,I/O控制器124可生成请求118并传送至存储器控制器114以获得存储器110的存储器空间或处理器120、网络控制器122等的第二资源中的至少一项(如箭头174一般地所示)。
返回网络控制器122示例,存储器控制器114可从网络控制器122接收请求118。可由存储器控制器114将请求118传送至管理程序层104、操作系统层106和/或进程层108(如箭头162一般地所示)。可如上文结合图1A中的请求存储器空间和/或资源所解释地处理请求118。
存储器控制器114可响应于来自管理程序层104、操作系统层106和/或进程层108的存储器空间或第二资源中的至少一项可用的第二指示而向网络控制器122传送存储器空间或第二资源中的至少一项可用的第一指示。网络控制器122可以多种方式响应于来自存储器控制器114的存储器空间或第二资源中的至少一项可用的第一指示而使用存储器空间或第二资源中的至少一项。
图2更详细地图示出用来与图1A—1C的装置100一致地实现逻辑分区环境以处理来自存储器控制器的以供其自己使用或代表第一资源的用于存储器空间和/或资源的请求的主要软件和硬件部件。可做出并准许用于存储器空间和/或资源的独有使用的请求。可在初始化时段之后传送该请求。具体而言,图2图示出具有如图IBM开发的虚拟机设计的逻辑分区计算系统200。图1A—2中的相同名称可表示类似元件。例如,图1A—1C的存储器控制器114可类似于图2的存储器控制器214。图1A—1C的MC设备驱动器129可类似于图2的MC设备驱动器297。
计算系统200包括共享公共资源的多个分区,诸如分区202、204和206。计算系统200可使用具有与存储器控制器214耦合的一个或多个处理器208、210或中央处理单元(CPU)的单个计算机器。可将存储器控制器214耦合到物理存储器212。存储器212可以是DIMM、DRAM等。例如,存储器212可以至少一太字节。处理器208可包括至少一个翻译后援缓冲器(“TLB”)276。TLB276可以是具有可被处理器208用来将存储器212的虚拟或逻辑地址转换成物理地址(或者反之亦然)的约128个页表条目或约256个页表条目的处理器208的硬件高速缓存。
可将存储器控制器214视为可信存储器资源用户、可信硬件和/或可信设备,因为其可以是计算系统200的芯片的一部分,与稍后被添加到计算系统200的一件外部部件(例如IO卡)相反。在本文中利用术语“可信设备”。作为可信设备,存储器控制器214可比不可信设备具有关于其如何使用存储器空间和/或资源的更少限制。然而,在某些实施例中,可不将存储器控制器214视为可信设备。
存储器控制器214可包括存储器控制器逻辑216(例如硬件逻辑)以使得存储器控制器214在初始化时段期间将存储器212初始化。此外,存储器控制器逻辑216可使得存储器控制器214在初始化时段之后交出对存储器212的控制并按照指示在初始化时段之后对存储器212执行操作。还可以将存储器控制器逻辑216配置成在初始化时段之后检测至少一个事件218并响应于事件218生成用于存储器空间和/或资源的至少一个请求220。
事件218可以是存储器控制器定时器事件(例如,校准计时器或擦除定时器)、性能事件、维护事件、修理事件、存储器调试事件、存储器分析事件、错误事件或其任何组合。错误事件可以是纠错码(“ECC”)错误和/或超越错误阈值。例如,ECC错误可持续在一个位置(例如,每两秒在位置742)上发生,并且在超越某个错误阈值之后,事件可发生。事件218可使得存储器控制器214醒来,生成请求220,并通过MC设备驱动器297来参与资源共享。
例如,位置742处的每两秒的重复ECC错误可超越错误阈值,引起事件218。响应于事件218,存储器控制器214可醒来,通过其自己的设备驱动器、即MC设备驱动器297来传送用于存储器空间(例如,请求位置742和另一存储器空间)和/或资源(例如,请求处理器资源,诸如任何处理器208、210和/或请求输入—输出资源,诸如DASD、236、248、254、255、局域网(LAN)适配器244、250、252、光盘驱动器242、246等中的任何一项)的请求220。在使得存储器空间和/或资源可供使用之后,存储器控制器214可拷贝来数据,运行图案(pattern)和/或确定位置742怎么了。一旦存储器控制器214完成运行模式和收集数据,则存储器控制器214可运行备份,采取某些行动以修复或标出位置742和/或可返回或者可不返回位置742(例如,继续保持直至特定应用程序不再需要位置742)。
虽然可利用事件218作为生成请求220的触发,但也可以其他方式来生成请求220。例如,可基于处理器208、210中的任何一项的潜在需要或基于处理器208、210中的任何一项的实际需要而投机性地生成请求220。例如,可将存储器控制器逻辑216配置成基于趋势分析而从处理器208检测实际需要并基于所检测需要而生成请求220。此外,计算系统200的某个配置可使得存储器控制器214生成请求200并且可将此视为事件。为了简单起见,在本文中利用术语“事件”。
请求220可用于存储器空间和/或资源的解除分配、存储器空间和/或资源到存储器控制器214的解除分配和分配或者存储器空间和/或资源的到存储器控制器214的分配。可将请求220称为存储器和/或资源捕捉请求。所请求的存储器空间可与缓冲器,信道、DRAM、DIMM、较大存储器空间的一部分(有时称为“分块”)等相对应。存储器空间可以是连续存储器空间、非连续存储器空间(例如,用于两千兆字节的请求可导致两个一千兆字节存储器空间)等。所请求资源可以是实际上任何资源(或其一部分),诸如处理器资源(或其一部分)、输入/输出资源(或其一部分)等。请求220可用于例如临时地使用存储器空间和/或资源或者永久地使用存储器空间和/或资源。请求220可寻求与具有一定大小、不可高速缓存、具有固定(pinned)虚拟存储器管理属性或其任何组合的存储器212的区域相对应的存储器空间。
此外,请求220可寻求一般存储器空间,诸如可满足所请求量的任何存储器空间(例如,来自存储器212的任何4k区块或两千兆字节的任何物理地址范围)。类似地,请求220可寻求一般资源,诸如可满足请求220的任何资源(例如,可满足用于处理器资源的请求的处理器208、210或其他处理器资源中的任何一项、DASD236、248、254、255中的任何一项、光盘驱动器242、246或可满足用于输入/输出资源的请求的其他存储设备等)。
另一方面,请求220可寻求具有指定位置(例如,来自存储器212的一个或多个指定物理地址、指定物理地址区域等)的指定存储器空间和/或寻求指定资源(例如,具体地寻求DASD248或具体地寻求DASD248的一部分等)。可替换地,请求220可寻求具有特定属性(例如,类型、参考局部性、隐含性能、速度、可靠性、低功率、非易失性等)的存储器空间和/或寻求具有指定属性的资源。例如,存储器控制器开启按类似于指定传输大小、加密方法等来请求一个或多个IO通道,并且可使用存储器空间对那些通道上的流式传输且已加密数据传输执行处理。因此,请求220可寻求具有特定属性的指定存储器空间和/或指定资源。
作为示例,存储器空间的类型可以是关于数据在逻辑上如何结构化的逻辑类型,诸如用于被压缩的存储器空间的请求、用于未压缩的存储器空间的请求、用于被特定实体使用的存储器空间、用于具有特定参考局部性的存储器空间的请求、用于具有特定进程(或应用程序)的存储器空间的请求、用于特定操作系统的存储器空间的请求以及用于特定管理程序的存储器空间的请求等。存储器空间的类型可以是关于拓扑结构的特定类型,诸如用于在特定节点上的存储器空间的请求、用于特定抽屉上的存储器空间的请求(例如,如在对称多处理(“SMP”)或分布式系统中以获得最优性能)等。物理类型还可涉及技术,诸如用于非易失性的存储器空间的请求、用于基于闪存的存储器空间的请求、用于作为I/O存储器的存储器空间的请求、用于作为相变存储器(“PCM”)的存储器空间等。存储器212可包括多种存储器类型(例如,可将PCM与DRAM混合),并且可针对存储器的多种类型生成请求。请求220可寻求具有本文中未列出的其他特性的存储器空间。
存储器控制器214可从计算机程序请求存储器212的存储器空间和/或处理器208、210、DASD236、248、254、255、LAN适配器244、250、252、光盘驱动器242、246等中的任何一项的资源,该计算机程序被配置成响应于用于存储器空间和/或资源的请求而使得(例如,从存储器212、处理器208、210、DASD236、248、254、255、LAN适配器244、250、252、光盘驱动器242、246等中的任何一项)存储器空间和/或资源可用。计算机程序可以是管理程序229或其他计算机程序。存储器控制器214可通过与管理程序229通信的MC设备驱动器297来传送请求220,如一般地用短划线214所示。还可将存储器控制器214配置成响应于请求220经由MC设备驱动器297而接收与存储器空间和/或资源的可用性有关的至少一个指示,诸如中断。
具体而言,管理程序229可运行用于存储器控制器214的MC设备驱动器297。存储器控制器214在管理程序229开始运行MC设备驱动器297时可传送也可不传送用于存储器空间和/或资源的请求220。例如,存储器控制器214可经由MC设备驱动器297来简单地指示它是可信设备并且MC设备驱动器297是管理程序229如何可与存储器控制器214通信的方式。管理程序229可理解MC设备驱动器297,可将其映射到其资源池中,并且可知道其与存储器控制器214存在。存储器控制器14可在稍后响应于事件218而传送请求220。
MC存储器空间223被示为表示被管理程序229或其他计算机程序指示为可供存储器控制器214使用的存储器空间。MC资源231被示为表示被管理程序229或其他计算机程序指示为可供存储器控制器214使用的资源。MC存储器空间223可表示来自存储器212的DRAM和/或MC资源231可表示由管理程序229或其他计算机程序分配给存储器控制器214的处理资源、输入—输出资源或其他资源。虽然为了简单起见被示为单个方框,但MC存储器空间223可表示供存储器控制器214使用的多个存储器空间。类似地,MC资源231可表示供存储器控制器214使用的多个资源。作为示例,MC存储器空间223可表示存储器212的十四个不同区域和/或MC资源231可表示对响应于十四个不同事件218的十四个不同请求220进行响应而分配给存储器控制器214的十四个资源。虽然图示出一个请求220,但可生成多个请求220。
存储器控制器214可利用MC存储器空间223和/或MC资源231所表示的存储器空间和/或资源以用于测试、校准、追踪、高速缓存、优化、计算、变换、加密、解密、预取、分页、预编码、预解码、压缩、解压缩、重映射(例如,与故障容忍度相关联)、做镜像、做影或作为便笺式存储器中的至少一项。存储器控制器可将存储器空间和/或资源用于上游数据处理或上游数据存储中的至少一项。存储器控制器可将存储器空间和/或资源用于下游数据处理或下游数据存储中的至少一项。例如,存储器控制器214可将MC存储器空间223和/或MC资源231作为预取缓冲器而用于预取、作为冗余阵列而用于重映射等。关于重映射,存储器控制器可拦截并服务于对该存储器空间的引用,以及在DRAM层级改变物理映射。因此,在短时间段内,有故障的存储器空间可在物理上被存储器控制器214重映射到没有故障的不同存储器空间。还可以有其他用途。
此外,可将MC存储器空间223的一部分用于存储器控制器214与管理程序229(或其他计算机程序)之间的双向通信,如短划线257所示。例如,MC存储器空间223可表示存储器212的DRAM的十四个不同区域,并且可将十四个区域中的区域一至十三用于十三个不同的目的,同时可将十四个区域中的区域十四用于双向通信。管理程序229可通过MC设备驱动器297知道其应针对来自存储器控制器214的数据而读取MC存储器空间223的十四个区域中的区域十四(例如,状况或状态数据、重映射数据等)。类似地,存储器控制器214可从MC存储器空间223的十四个区域中的区域十四从管理程序229(或其他计算机程序)读取数据。
存储器控制器214可包括至少一个寄存器,诸如寄存器221、222。例如,存储器控制器214可包括几百个寄存器,并且寄存器221、222可表示约10个至约20个更多的寄存器。可将寄存器221、222配置为阵列。存储器控制器214可使用至少一个寄存器221来在使用存储器空间和/或资源之前寄存(register)被指示为可用的该存储器空间和/或资源。此外,存储器控制器214可将至少一个寄存器222用于存储器控制器214与管理程序229(或其他计算机程序)之间的双向通信,如短划线256所示。例如,管理程序229可通过MC设备驱动器297知道其应针对来自存储器控制器214的数据(例如,状况或状态数据、重映射数据等)读取寄存器222。类似地,存储器控制器214可从寄存器232读取来自管理程序229(或其他计算机程序)的数据。
存储器控制器214还可包括在存储器控制器214的控制下的至少一个独有存储器空间224。独有存储器空间224可在物理上位于存储器控制器214内,可对应于eDRAM,可由寄存器等构成等。独有存储器空间224可为约256字节、约1000字节(即约1K)、上至约1000字节(即达到约1K)等。例如,在初始化时段之后,存储器控制器214可将实际上任何存储器空间、诸如其请求但可能不可用的指定存储器空间的内容拷贝到独有存储器空间224中。随后,存储器控制器214将可能不可用的存储器空间以用于测试、校准、追踪、高速缓存、优化、计算、变换、加密、解密、预取、分页、预编码、预解码、压缩、解压缩、重映射、做镜像、做影或作为便笺式存储器中的至少一项。在不可用存储器空间的使用期间,存储器控制器214可拦截到可能不可用的存储器空间的任何请求,服务于来自独有存储器空间224的请求,并在使用结束之后将来自独有存储器空间224的相应内容拷贝回到可能不可用的存储器空间。
存储器控制器214可将实际上任何存储器空间(不仅仅是可能不可用的存储器空间)拷贝到独有存储器空间224,使用该存储器空间、拦截到该存储器空间的任何请求,服务于该请求,并在使用结束之后将来自独有存储器空间224的内容拷贝回到该存储器空间。
可替换地或附加地,工具226可监测至少一个事件228,并且可在初始化时段之后生成针对存储器控制器214的用于存储器空间和/或资源的请求。工具226可响应于事件228而生成该请求。工具220可用固件来实现,或者可与计算系统200的BIOS相关联。事件228可以是存储器控制器定时器事件、性能事件、维护事件、修理事件、存储器调试事件、存储器分析事件、错误事件或其任何组合。在生成该请求之后,工具226可将该请求传递到存储器控制器214上。存储器控制器214可将来自工具226的请求的任何地址逆向映射到物理地址,如果必要的话。从工具226接收到的在有或没有逆向映射的情况下的请求可变成请求220。
可替换地或附加地,第一资源可监测至少一个事件228,并且可在初始化时段之后生成用于存储器空间和/或资源的请求。第一资源(例如,处理器资源(例如,CPU208、210中的任何一项)、输入/输出资源(例如,DASD236、248、254、255、LAN适配器244、250、252、光盘驱动器242、246等中的任何一项)或其他资源)可响应于事件228而生成该请求。再次地,事件228可以是存储器控制器定时器事件、性能事件、维护事件、修理事件、存储器调试事件、存储器分析事件、错误事件或其任何组合。由第一资源生成的请求可以用于存储器空间和/或资源的解除分配、存储器空间和/或资源到第一资源的解除分配和分配或到存储器空间和/或资源的到第一资源的分配中的至少一项。
在生成该请求之后,第一资源可经由总线230向存储器控制器214传送请求。例如,可用线路227将DASD236连接到总线230,并且可用线路215将存储器控制器214连接到总线230(下面进一步讨论)。DASD236可生成请求并经由线路227、总线230以及线路215将其传送至存储器控制器214。存储器控制器214可将来自DASD236的请求的任何地址逆向映射回到物理地址(如果必要的话)或执行任何其他动作。在由存储器控制器214从DASD236接收到的有或没有逆向映射的情况下的请求可变成存储器控制器214传送至管理程序229(或其他计算机程序)的请求220。
请注意,存储器控制器214还可经由线路215、总线230以及线路227向DASD236传送指示。类似地,管理程序229或其他计算机程序可经由总线230和线路227向DASD236传送指示。DASD存储器空间298被示为表示由管理程序229或其他计算机程序指示为可供DASD236使用的存储器空间。DASD资源299被示为表示由管理程序229或其他计算机程序指示为可供DASD236使用的资源。
作为另一示例,可用线路209将处理器208连接到总线230,并且可用线路215将存储器控制器214连接到总线230。处理器208可生成请求并经由线路209、总线203、线路215而将该请求传送至存储器控制器214。由存储器控制器214从处理器208接收到的在有逆向映射或没有的情况下的请求可变成存储器控制器214传送至管理程序229(或其他计算机程序)的请求220。
请注意,存储器控制器214还可经由线路215、总线230以及线路209向处理器208传送指示。类似地,管理程序229或其他计算机程序可经由总线230和线路209向处理器208传送指示。可在处理器208中示出类似于DASD存储器空间298和DASD资源299的方框以表示由管理程序229或其他计算机程序指示为可供处理器208使用的存储器空间和/或资源。
可替换地,由存储器控制器214从DASD236或处理器208接收到的请求可引导存储器控制器214生成至少一个其他请求(例如,请求X),并且请求X可以是由存储器控制器214传送至管理程序229(或其他计算机程序)的请求220。因此,存储器控制器214可代表第一资源将由存储器控制器214从第一资源接收到的用于存储器空间和/或资源的基本上相同的请求、修改的请求或新的请求传送至管理程序229(或其他计算机程序)。
可经由诸如电力总线之类的总线230通过MC设备驱动器297将由存储器控制器214生成、从工具226生成并接收或者从第一资源生成并接收的请求220传送至管理程序229。
为了详细说明存储器控制器214与管理程序220(或其他计算机程序)之间的通信,存储器控制器214可通过与管理程序229通信的MC设备驱动器297来进行通信,如短划线213一般地所示。存储器控制器214可沿着管线向与管理程序229通信的MC设备驱动器297进行通信。除MC设备驱动器297之外,管理程序229(或其他计算机程序)和存储器控制器214可经由MC存储器空间223和/或寄存器222参与双向通信。因此,该通信可以是通过诸如寄存器222之类的存储器映射寄存器和/或DRAM中的存储器位置,诸如响应于请求220由管理程序229使得可用的MC存储器空间223。通信可以是中断驱动的或轮询(polling)驱动的。如果并未预期很多通信,则通信可以是中断驱动的。由于轮询可能更快,所以如果预期大量通信,则可使用轮询。
例如,存储器控制器214可以是隐式地或显式地向管理程序299传送将如何使用存储器空间和/或资源、传送要解决的关于存储器空间(例如,有故障存储器空间)和/或资源的任何问题等。管理程序229(或其他计算机程序)可通过对预定位置(例如,MC存储器空间223和/或寄存器222)的轮询来监测存储器控制器214的进展以用于与存储器控制器214的通信。管理程序229可从存储器控制器214接收数据,并通过轮询来获悉例如状况或状态数据(例如,重映射状态、重映射完成的时间、最终重映射等)、存储器控制器214已经完成什么动作、是否需要继续任何事情等。
可设想且在本文中公开了关于通信的多种情形。在第一情形中,被配置成响应于用于存储器空间和/或资源的请求而使得存储器的存储器空间和/或资源可用的诸如管理程序229之类的计算机程序可能不知道由存储器控制器214做出的动作。例如,在第一情形中,存储器控制器214可将存储器空间拷贝到独有存储器空间224中,使用该存储器空间,拦截到该存储器空间的任何请求,服务于该请求,并在使用结束之后将来自独有存储器空间224的内容拷贝回到该存储器空间。类似地,在第一情形下,存储器控制器214可简单地将被使得可用的资源用于解密或上游数据存储等。在此第一情形中,计算机程序可能甚至不知道这些动作发生。
在第二情形中,计算机程序可知道存储器控制器214获取存储器空间和/或资源(例如,因为计算机程序接收到请求220并响应于请求220而向存储其控制器214分配存储器空间和/或资源),但是可能不知道存储器控制器214为什么获取存储器空间和/或资源。例如,存储器控制器214可在不传达其为什么获取存储器空间和/或资源的情况下,获取被使得可供其使用的存储器空间和/或资源(被示为MC存储器空间223和/或MC资源231),秘密地将其用于解密、预取等,并释放存储器空间和/或资源。
在第三情形中,计算机程序可知道存储器控制器214获取存储器空间和/或资源,还可知道为什么获取存储器空间和/或资源(例如,检测到故障),并且可关于获取存储器空间和/或资源的原因而与存储器控制器214协作。此外,在此第三情形中,计算机程序可允许存储器控制器214继续获取存储器空间和/或资源以支持计算系统200。
作为此第三情形的示例,存储器控制器214可将MC存储器空间223用于重映射,诸如与故障容忍度或其中存储器212的一部分(例如,4K区块)可能有故障(例如,ECC错误或在阈值以上出故障)的故障模式相关联。存储器控制器214可动态地将来自存储器212的一个有故障的物理位置的内容重映射并移动至没有故障的存储器212的不同物理位置。具体而言,存储器控制器214可用请求220来进行请求并经由MC设备驱动器297而被管理程序229(或其他计算机程序)分配存储器212的两个存储器空间,即4k有故障存储器空间和4k非故障存储器空间(在本示例中即,MC存储器空间223)。存储器控制器214可能已经通过事件218而标识到4k有故障存储器空间。存储器控制器214可将有故障存储器空间的内容拷贝到非故障存储器空间,在物理上将有故障存储器空间重映射到非故障存储器空间,并根据需要拦截且服务于从非故障存储器空间对有故障存储器空间的引用。存储器控制器214还可将MC资源231用于重映射。存储器控制器214可在重映射过程以及经由MC存储器空间223和/或寄存器222的最终重映射期间向管理程序229(或其他计算机程序)传送状况或状态数据。结果,存储器控制器214可将4k有故障存储器空间的内容移动至存储器212的另一物理位置,并且可告知管理程序229配置已改变且操作应利用新配置。管理程序229(或其他计算机程序)可用新配置来管理计算系统200,包括使用最终重映射并制止更进一步地分配4k有故障存储器空间。
存储器控制器214可能能够在存储器空间正在被(例如,应用程序)使用的同时在物理上对该存储器空间进行重映射。特定应用程序可在存在有故障存储器空间的情况下继续运行,因为存储器控制器214已经将数据内容移动至不同的存储器空间。存储器控制器214可拦截并服务于应用程序对该有故障存储器空间的引用,同时在DRAM层级改变物理映射,使得在短时间段上,存储器控制器214可将有故障存储器空间的内容迁移至没有故障的不同的存储器空间。换言之,存储器控制器214可执行可被视为在虚拟存储器管理下面(例如,在页表层级和翻译后援缓冲器层级下面)的第二层重映射的重映射。此外,虽然存储器控制器214和管理程序229(或其他计算机程序)可通过MC存储器空间223和/或寄存器222而参与双向通信,但重映射可在没有管理程序229(或其他计算机程序)的任何直接介入的情况下发生。管理程序229(或其他计算机程序)可简单地了解状态,但是可不必执行任何动作来辅助存储器控制器214进行重映射。
存储器控制器214还可具有到总线230的连接(例如,硬件导线),被示为线路215,以将来自管理程序229或其他计算机程序的指示告知存储器控制器214。该连接可避免连续轮询以确定是否存在指示。例如,管理程序229或其他计算机程序可经由被示为线路215的导线而中断存储器控制器214,以指示某些事物(例如,指示)可用于存储器控制器214且存储器控制器214应看看。
此外,在某些实施例中,可不使用设备驱动器(例如,MC设备驱动器297)和/或虚拟设备驱动器(例如,下面进一步讨论的OS虚拟设备驱动器285、286、287)来与计算机程序通信。例如,另一实施例可直接地对管理程序229(或其他计算机程序)而不是MC设备驱动器297来使用中断和/或轮询(或某个其他邮箱协议)。此集成设计可避免MC驱动器297,但可能不可移植到(portable)其他管理程序。
因此,根据本文公开的实施例,存储器控制器可通过设备驱动器与计算机程序通信。存储器控制器可通过虚拟设备驱动器与计算机程序通信。存储器控制器可通过中断与计算机程序通信。存储器控制器可通过轮询与计算机程序通信。存储器控制器可通过轮询和中断两者与计算机程序通信。存储器控制器可以单向方式与计算机程序通信(例如,存储器控制器214向管理程序229发送用于存储器空间和/或资源的请求220)。存储器控制器可将至少一个寄存器用于与计算机程序的双向通信。存储器控制器可将可供存储器控制器使用的存储器空间(例如,被示为MC存储器空间223)用于与计算机程序的双向通信。存储器控制器可将可供存储器控制器使用的至少一个寄存器和存储器空间两者用于与计算机程序的双向通信。通信还可通过总线(例如,电力总线)发生。此外,虽然示出了管理程序,但某些实施例甚至可不包括管理程序,并且存储器控制器可简单地与被配置成响应于请求而使得存储器资源和/或资源可供使用的任何计算机程序通信。存储器控制器214还可为了其自己使用或代表第一资源而请求存储器空间和/或资源。
返回管理程序229,可将管理程序229称为分区管理器或虚拟化管理器,并且可将其配置成创建分区202、204、206中的每一个并向分区202、204、206中的每一个分配且调整(例如,存储器资源、处理器或CPU资源或其他资源的)资源(例如,在初始化时段之后),包括被配置成响应于用于存储器空间和/或资源的请求而使得存储器212的存储器空间和/或资源可用。除此功能之外,还可将管理程序229配置成(例如,在初始化时段之后)处理经由MC设备驱动器297传送的来自存储器控制器214的用于存储器空间和/或资源的请求220。可将管理程序229配置成运行MC设备驱动器297以及运行与其他硬件相关联的其他设备驱动器272、298。可将处理器208、210配置成执行程序代码以执行管理程序229,诸如意图举例说明管理程序229的程序代码的管理程序273。
逻辑分区202、204、206每个可使用计算系统200的处理器208、210、存储器212和/或其他资源(例如,DASD236、控制面板238、磁带驱动器240和/或光盘242)的一部分。例如,当计算系统200内的分区202、204、206正在共享处理器208、210时,管理程序229可在共享处理器208、210的分区202、204、206的虚拟处理器261—266之间分配物理处理器循环。处理器208、210可执行被配置成模拟一个或多个逻辑分区202、204、206中的虚拟处理器251—266中的一个或多个的软件。作为另一示例,当计算系统200内的分区202、204、206正在共享存储器212时,管理程序229可根据需要在共享存储器212的分区202、204、206的逻辑存储器之间分配存储器212的存储器空间。此外,可向逻辑分区202、204、206分配其他资源,例如大容量储存器、备份储存器、用户输入、网络连接等。可以许多方式来分配资源,例如在总线到总线基础上或者在资源到资源基础上,其中多个逻辑分区202、204、206共享同一总线上的资源。还可以将某些资源每次分配给多个逻辑分区。
例如,图2图示出三个逻辑总线230、232、234。转到总线230,可将处理器208、210和存储器控制器214中的每一个连接到总线230。另外与多个资源一起图示出总线230,包括DASD236、控制面板238、磁带驱动器240以及光盘驱动器242。可在逻辑分区202、204、206当中在共享基础上分配资源。然而,总线232可具有在资源到资源基础上分配的资源,例如其中LAN适配器244、光盘驱动器246以及DASD248被分配给逻辑分区202,并且LAN适配器250和252被分配给逻辑分区204。总线234可表示指定分配给逻辑分区206的总线,使得该总线上的所有资源、例如DASD254、255被分配给同一逻辑分区。
每个分区202、204、206还可主控相应的操作环境或操作系统258、259、260。可将处理器208、210配置成执行程序代码以执行操作系统258、259、260。每个操作系统258、259、260以与非分区计算机的操作系统类似的方式来控制其相应逻辑分区202、204、206的主要操作。每个逻辑分区202、204、206可以是相同或不同的分布式计算环境的成员。每个操作系统258、259、260可在被分别地示为OS存储器空间267、268、269的单独逻辑存储器中被执行或与之相关联。每个逻辑分区202、204、206可通过共享一定百分比的处理器资源来共享处理器208、210以供虚拟处理器261—266使用,以及共享存储器212的一部分以供在OS存储器空间267—269中使用。以这种方式,给定的处理器208、210和给定的存储器212的资源可被多于一个逻辑分区202、204、206利用。以类似方式,可用于计算系统200的其他资源可被多于一个逻辑分区202、204、206利用。在用处理器、存储器、其他资源以及操作系统258、259、260进行配置之后,每个逻辑分区202、204、206可如同其是单独计算机一样进行操作。
操作系统258、260、262可包括类似于图1A—1C的进程152、154的多种应用程序(未示出)或进程(未示出)。在一个实施例中,应用程序可以是连接应用程序、进程和/或软件部件的中间件应用程序。该应用程序可由一组启用服务组成,其允许在一个或多个计算机的一个或多个逻辑分区上运行的多个进程进行交互。因此,该应用程序可以是跨作为分布式计算环境的一部分的一个或多个计算机(即,如图2中所示,应用程序跨计算系统200被配置)的多个逻辑分区(即,如图2中所示,跨逻辑分区202、204、206)来配置的分布式应用程序。一种此类分布式计算环境是由IBM开发的WebSphere架构,使得企业可跨一个或多个计算系统设立、操作基于网络的网站、应用程序或业务并将其集成。
返回管理程序229,为了向每个分区202、204、206分配并调整资源,管理程序229可拦截来自操作系统258、259、260或在其上面配置的进程(例如,应用程序)的用于资源的请求(例如,在初始化时段之后)。管理程序229可包括在调度列表或就绪队列271上管理虚拟资源到物理资源的分派的调度器270。就绪队列271可包括存储器,该存储器包括具有工作的虚拟资源列表,该工作等待被分派到计算系统200的资源。管理程序229也可包括其他单元,例如其自己的固件、兼容性表、控制块等。逻辑分区可使用分区202、204、206的固件和管理程序229中的任一者或两者。
作为示例,在初始化时段之后,管理程序229可控制由被示为管理程序存储器空间275的全部或小于全部的存储器212,其由存储器控制器214初始化但不再受其控制。类似地,在初始化时段之后,管理程序229可控制全部或小于全部的其他资源,包括处理器208、210、DASD236、248、254、255等(如管理程序资源233所示)。管理程序229可向操作系统258、259、260分配管理程序存储器空间275的存储器空间以用于OS存储器空间267、268、269,因为用于存储器资源的请求被从操作系统258、259、260拦截。类似地,管理程序229可向操作系统258、259、260分配管理程序资源233的资源以用于OS资源235、237、239,因为用于资源的请求被从操作系统258、259、260拦截。可在表格278中跟踪(例如,管理程序存储器空间275和/或管理程序资源233到操作系统258及其OS存储器空间267的)分配。
除在初始化时段之后向每个分区202、204、206分配并调整资源,可利用管理程序274、MC设备驱动器297或管理程序中断处理程序274中的至少一项来处理请求220,取决于特定实施例。例如,除结合图1A—1C所述的动作之外,处理请求220可包括拾取与请求220相关联的至少一个分组,根据请求220来确定是否寻求指定存储器空间、一般存储器空间、指定资源和/或一般资源,确定是否要等待指定存储器空间和/或指定资源和/或翻译。
关于翻译,根据需要,可利用至少一个页表277来将物理地址翻译成逻辑地址或虚拟页面。存储器控制器214可理解物理地址,而管理程序229(和操作系统258、259、260和进程279、280、281中的每一个)可理解逻辑地址。因此,可利用物理到逻辑和/或逻辑到物理翻译来处理请求220。页表277可以是由管理程序229保持在存储器中的软件,在大小方面可以为兆字节大,并且可由潜在地在计算系统200中的所有页面构成。管理程序273、MC设备驱动器297或管理程序中断处理程序274中的至少一项可利用页表277来确定哪个或哪些页面对应于请求220所寻求的一个或多个物理地址。在翻译之后,可检查表格278以确定对应于请求220的物理地址的逻辑地址(或页面)例如是否已经被分配给实体(例如,分配给操作系统258、259、260中的一者)。在某些实施例中,可将页表277用于翻译以及跟踪解除分配和/或分配。类似地,可检查表格278以确定哪些资源已经被分配给实体(例如,分配给操作系统258、259、260中的一者)。例如,可检查表格278以确定哪些资源标识符被分配和哪些未被分配。
当可从管理程序存储器空间275和/或管理程序资源233获得存储器空间和/或资源时,可根据需要将存储器空间和/或资源解除分配和/或分配并使得其可供存储器控制器214或第一资源使用。例如,除结合图1A—1C所述的动作之外,管理程序273、MC设备驱动器297或管理程序中断处理程序274中的至少一项可通过移动任何受影响的数据、保存任何受影响的数据、(例如,在保存受影响数据之后)修改表格278(和/或页表277)以反映解除分配、修改表格278(和/或页表277)以反映分配、保存任何已修改表格或其任何组合来将存储器空间和/或资源解除分配。可基于请求220向存储器控制器214或向第一资源分配存储器空间和/或资源。
当存储器空间和/或资源可用时,可在已经由管理程序273、MC设备驱动器297或管理程序中断处理程序274中的至少一项完成数据保存动作之后向存储器控制器214传送指示,该指示诸如确认分组(ACK分组)。该指示可包括对应于可用存储器空间的存储器212的一个或多个物理地址、对应于可用资源的信息(例如,可用资源的标识符),并且可包括提供存储器空间和/或资源的实体,诸如管理程序229。存储器控制器214可检测对应于ACK分组的中断,读取该ACK分组,在被存储器控制器214使用之前将可用的存储器空间和/或资源寄存在寄存器221处,并且存储器控制器214可使用其已经寄存的存储器空间和/或资源。如果从工具226接收到请求220,则存储器控制器214还可向工具226报告例如解除分配完成。
如果从第一资源接收到请求220,则存储器控制器214可响应于来自管理程序229的存储器空间和/或资源可用的指示而向第一资源传送存储器空间和/或资源可用的指示(例如,另一ACK确认)。从存储器控制器214传送到第一资源的指示可是从管理程序229传送至存储器控制器214的基本上相同的指示、修改的指示或新的指示。作为示例,从存储器控制器214传送到第一资源的指示可包括对应于可用存储器空间的存储器212的一个或多个物理地址、对应于可用资源的信息(例如,可用资源标识符),并且可包括提供存储器空间和/或资源的实体,例如管理程序229。第一资源可检测对应于ACK分组的中断,读取ACK分组,在被第一资源使用之前寄存可用的存储器空间和/或资源,并且第一资源可使用其已经寄存的存储器空间和/或资源。由于寄存器221可以是存储器控制器214的一部分,所以第一资源可请求存储器控制器214执行寄存。替换地,第一资源可以用类似于寄存器221或不同的寄存器或其他存储区来寄存存储器空间和/或资源,该其他存储区并非存储器控制器214的一部分但对管理程序229或其他计算机程序可访问的其他存储区。
当从管理程序存储器空间275和/或管理程序资源233不可获得存储器空间和/或资源时,处理程序273、MC设备驱动器297或管理程序中断处理程序274中的至少一项可通过检查表格278(和/或页表277)来确定从操作系统258、259、260及其相应OS存储器空间267、268、269和/或OS资源235、237、239是否可获得存储器空间和/或资源。具体地,可在表278(和/或页表277)中跟踪被使得可用于(例如,分配给)操作系统258、259、260且在其相应OS存储器空间267、268、269和/或OS资源235、237、239中反映的任何存储器空间和/或资源。附加地,还可在表格278(和/或页表277)中跟踪由操作系统258、259、260向进程279、280、281进行的存储器空间和/或资源、被示为进程存储器空间282、283、284和/或进程资源241、243、245的分配。因此,可检查表格278(和/或页表277)以确定从进程279、280、281中的任何一项是否可获得存储器空间和/或资源。
管理程序273、MC设备驱动器297或管理程序中断处理程序274中的至少一项可与该确定一致地而向存储器控制器214传送从管理程序229不可获得存储器空间和/或资源的指示、可从操作系统258、259、260中的一者获得存储器空间和/或资源的指示、可从进程279、280、281中的一者获得存储器空间和/或资源的指示或其任何组合。存储器控制器214可响应于该指示而向分别地与操作系统258、259、260通信的OS虚拟设备驱动器285、286、287中的一者传送用于存储器空间和/或资源的请求220。例如,来自管理程序229的指示可指示可从操作系统258获得存储器空间和/或资源,并且可将请求220传送至与操作系统258通信的OS虚拟设备驱动器285。可将处理器208、210配置成执行程序代码以执行操作系统258、259、260。
OS虚拟设备驱动器285、286、287、OS288、289、290(例如,意图分别地举例说明操作系统258、259、260的程序代码)、OS中断处理程序291、292、293中的至少一者可接收并处理请求220。例如,OS虚拟设备驱动器285、286、287可专用于且主要负责从存储器控制器214接收并处理用于存储器空间和/或资源的请求。OS虚拟设备驱动器285、286、287可类似于图1A—1C的OS虚拟设备驱动器136。
可根据系统的配置利用虚拟设备驱动器。例如,当存在管理程序和操作系统实例时,如在计算系统200中,可在虚拟环境中利用虚拟设备驱动器。例如,如果在系统中不存在管理程序,则操作系统可直接地连接到设备驱动器(例如,MC设备驱动器297)以与存储器控制器通信。然而,当存在管理程序时,如在计算系统200中,管理程序可首先运行设备驱动器(例如,MC设备驱动器297),并且操作系统实例可在管理程序上面运行。操作系统实例可使用表现得如同其是设备驱动器(例如,MC设备驱动器297)一样的虚拟设备驱动器(例如,OS虚拟设备驱动器285),但是虚拟设备驱动器可以几乎是管线或被穿过至由管理程序运行的“真实”设备驱动器(例如,MC设备驱动器297)。
但是,处理请求220可包括拾取与请求220相关联的至少一个分组,并确定从OS存储器空间267、268、269和/或OS资源235、237、239是否可获得存储器空间和/或资源。例如,为了确定存储器空间和/或资源是否可用,可检查表格294、295、296以确定对应于请求220的物理地址的逻辑地址例如是否已被分配给应用程序且因此可能不可用,或者逻辑地址和/或资源是否已经被应用程序返回且因此可能是可用的。如果未被分配,则存储器空间和/或资源可相应地从操作系统258、259、260被解除分配和/或分配且其可供(例如,存储器控制器214或第一资源)使用。可基于请求220向存储器控制器214或向第一资源分配存储器空间和/或资源。
例如,除结合图1A—1C提及的动作之外,OS虚拟设备驱动器285、286、287,OS288、289、290,OS中断处理程序291、292、293中的至少一项可通过移动任何受影响数据、保存任何受影响数据、修改表格294、295、296、保存任何修改的表格或其任何组合来将存储器空间和/或资源解除分配。还可修改并保存页表277和/或表格278以反映该变化。可根据该确定,可以从操作系统258、259、260将存储器空间和/或资源可用的指示(ACK),连同对应于可用存储器空间的存储器212的一个或多个物理地址、对应于可用资源的信息(例如,可用资源标识符)、从操作系统258、259、260不可获得存储器空间和/或资源的指示或其任何组合一起发送至存储器控制器214。可针对一个或多个物理地址查阅页表277和/或管理程序229。
存储器控制214可检测对应于来自操作系统258、259、260的ACK分组的中断,读取ACK分组,在被存储器控制器214使用之前将可用的存储器空间和和/或资源寄存在寄存器221处,并且存储器控制器214可使用其已经寄存的存储器空间和/或资源。如果从工具226接收到请求220,则存储器控制器214还可向工具226报告解除分配完成。
如果从第一资源接收到请求220,则存储器控制器214可响应于来自操作系统258、259、260的存储器空间和/或资源可用的指示而向第一资源传送存储器空间和/或资源可用的指示(例如,另一ACK确认)。从存储器控制器214传送到第一资源的指示可是从操作系统258、259、260传送至存储器控制器214的基本上相同的指示、修改的指示或新的指示。作为示例,从存储器控制器214传送到第一资源的指示可包括对应于可用存储器空间的存储器212的一个或多个物理地址、对应于可用资源的信息(例如,可用资源标识符),并且可包括提供存储器空间和/或资源的实体,诸如操作系统258、259、260中的一者。第一资源可检测对应于ACK分组的中断,读取ACK分组,在被第一资源使用之前寄存可用的存储器空间和/或资源,并且第一资源可使用其已经寄存的存储器空间和/或资源。由于寄存器221可以是存储器控制器214的一部分,所以第一资源可请求存储器控制器214执行寄存。可替换地,第一资源可向类似于寄存器221的不同的寄存器或其他存储区寄存存储器空间和/或资源,该其他存储区并非存储器控制器214的一部分但对管理程序229或其他计算机程序可访问。
可替换地,存储器控制器214可响应于该指示向进程279、280、281中的一项传送用于存储器空间和/或资源的请求220。可创建进程279、280、281中的每一个并使其专用于处理来自存储器控制器214的用于存储器空间和/或资源的请求(例如,供其自己使用或代表第一资源)。可将处理器208、210配置成执行程序代码以执行进程279、280、281。
进程存储器空间282、283、284意图分别地举例说明进程279、280、281的存储器空间。进程资源241、243、245意图分别地举例说明进程279、280、281的资源。进程279、280、281可能已具有来自操作系统258、259、260的已分配存储器空间和/或已分配资源,并且在管理程序229的表格278中反映了该分配。然而,进程279、280、281可能没有存储器空间和/或资源,并且因此可分别地请求来自操作系统258、259、260的存储器空间和/或资源。进程279、280、281可分别地确定存储器空间和/或资源是否被操作系统258、259、260分配。
例如,如上所述,管理程序229可针对OS存储器空间267、268、269和/或OS资源235、237、239从管理程序存储器空间275和/或管理程序资源233向操作系统258、259、260进行分配,因为用于资源的请求被从操作系统258、259、260拦截。类似地,操作系统258、259、260可针对进程存储器空间282、283、284和/或进程资源241、243、245从OS存储器空间267、268、269和/或OS资源235、237、239向进程279、280、281进行分配。可分别地在操作系统258、259、260的表格294、295、296中跟踪向进程279、280、281的分配。还可修改并保存页表277和/或表格278以反映该变化。例如,可将对表格294、295、296的修改发送到管理程序229以相应地修改表格278和/或页表277。进程279、280、281可从操作系统258、259、260接收关于存储器空间和/或资源是否可用的指示以及存储器空间的一个或多个逻辑地址、资源的标识符等。可基于请求220将存储器空间和/或资源分配给存储器控制器214或第一资源。
此外,可与该确定一致地从进程279、280、281将存储器空间和/或资源可用的指示(例如,ACK),连同对应于可用存储器空间的存储器212的一个或多个物理地址、对应于可用资源的信息(例如,可用资源的标识符)、从进程279、280、281不可获得存储器空间和/或资源的指示或其任何组合一起发送至存储器控制器214。可针对一个或多个物理地址查阅页表277和/或管理程序229。
存储器控制214可检测对应于来自进程279、280、281的ACK分组的中断,读取ACK分组,在被存储器控制器214使用之前将可用的存储器空间和/或资源寄存在寄存器221处,并且存储器控制器214可使用其已经寄存的存储器空间和/或资源。如果从工具226接收到请求220,则存储器控制器214还可向工具226报告例如解除分配完成。
如果从第一资源接收到请求220,则存储器控制器214可响应于来自进程279、280、281的存储器空间和/或资源可用的指示而向第一资源传送存储器空间和/或资源可用的指示(例如,另一ACK确认)。从存储器控制器214传送到第一资源的指示可是从进程279、280、281传送至存储器控制器214的基本上相同的指示、修改的指示或新的指示。作为示例,从存储器控制器214传送到第一资源的指示可包括对应于可用存储器空间的存储器212的一个或多个物理地址、对应于可用资源的信息(例如,可用资源标识符),并且可包括提供存储器空间和/或资源的实体,诸如进程279、280、281。第一资源可检测对应于ACK分组的中断,读取ACK分组,在被第一资源使用之前寄存可用的存储器空间和/或资源,并且第一资源可使用其已经寄存的存储器空间和/或资源。由于寄存器221可以是存储器控制器214的一部分,所以第一资源可请求存储器控制器214执行寄存。可替换地,第一资源可用类似于寄存器221或其他存储区的不同的寄存器寄存存储器空间和/或资源,该其他存储区并非存储器控制器214的一部分但管理程序229或对其他计算机程序可访问。
图3图示出可由图1A—1C的装置100和/或图2的计算系统200执行的由存储器控制器(例如,在初始化时段之后)请求存储器空间和/或资源的第一方法300的实施例。还可将方法300视为可由图1A—1C的装置100和/或图2的计算系统200执行的(例如在初始化时段之后)使用存储器控制器来请求存储器空间和/或资源(例如由第一资源)的实施例。具体而言,可由诸如图1A—1C的存储器控制器114和/或图2的存储器控制器214之类的存储器控制器来执行方法300。方法300将参考来自图2的项目。
在302处,存储器控制器可在存储器控制器处,在初始化时段之后检测事件。在304处,存储器控制器可响应于该事件而生成用于存储器空间和/或资源的请求。例如,可将存储器控制器214配置成检测事件218并响应于事件218而生成请求220。
可替换地,在306处,存储器控制器可在初始化时段之后从工具接收请求。例如,工具226可监测事件228并响应于事件228而生成用于存储器空间和/或资源的请求。在生成该请求之后,工具226可将该请求传递到存储器控制器214上。
可替换地,在307处,存储器控制器可在初始化时段之后从第一资源(例如,处理器资源或输入/输出资源)接收请求。例如,DASD236可监测事件228并响应于事件228而生成用于存储器空间和/或资源的请求。作为另一示例,处理器208可由于某个其他原因而生成用于存储器空间和/或资源的请求。在生成该请求之后,第一资源可向存储器控制器214传送该请求。项目307、321、323用粗体且用阴影示出以指示这些方框是相关的。具体而言,321、323(下面进一步讨论)表示可响应于在307处从第一资源接收到的请求而从存储器控制器214传送至第一资源的指示。可经由图8的方法800由第一资源将该请求传送至存储器控制器214。第一资源还可对来自存储器控制器的指示做出响应,如在图8的方法800中所述。在下文中将进一步讨论图8。
在308处,存储器控制器可向管理程序发送请求,并且该方法可在310处转到图4。例如,存储器控制器214可将由存储器控制器214生成、从工具226接收到或从第一资源接收到的请求220发送到管理程序229。可做出并准许用于存储器空间和/或资源的独有使用的请求220。
转到图4,示出了由管理程序来处理(例如,可在初始化时段之后传送的来自存储器控制器而供其自己使用或代表第一资源的)用于存储器空间和/或资源的请求的第一方法400的实施例。可由图1A—1C的装置100和/或图2的计算系统200来执行方法400。具体而言,可由图1A—1C的管理程序126和/或图2的管理程序229来执行方法400。方法400将参考来自图2的项目。
在402处,管理程序可在初始化时段之后从存储器控制器接收用于存储器空间和/或资源的请求。在404处,管理程序可确定该请求是否寻求指定存储器空间和/或指定资源。例如,管理程序229可从存储器控制器214接收请求220,并通过确定请求220是否寻求存储器212的指定物理地址来确定请求220是否是否寻求指定存储器空间和/或通过确定请求220是否包括资源标识符(例如,介质控制地址(MAC地址)或某其他标识符)来确定请求220是否寻求指定资源。例如,存储器控制器可寻求指定的一个或多个专用逻辑CPU处理器线程和由存储器大小指定的专用存储器空间(例如,来自管理程序或其他计算机程序)以便处理处理器和存储器两者密集的迭代算法。通过这样做,可增强此类处理器和存储器密集算法和/或应用程序的计算性能。
在寻求指定存储器空间和/或指定资源的情况下,在406处,管理程序可确定指定存储器空间和/或指定资源是否可用。例如,管理程序229可利用页表277将请求220的指定物理地址翻译成逻辑地址,并利用表格278来确定对应的逻辑地址是否可用。类似地,管理程序229可利用表格278来确定资源标识符是否可用。
在指定存储器空间和/或指定资源可用的情况下,管理程序可在408处将存储器空间和/或资源解除分配,并在410处向存储器控制器发送存储器空间和/或资源可用的指示。例如,图2的管理程序220可通过修改表格278以反映解除分配和/或分配来将存储器空间和/或资源解除分配。例如,管理程序229可基于请求220而向存储器控制器214或向第一资源分配存储器空间和/或资源。管理程序229可向存储器控制器214发送指示,并且该方法可转到图3。
在指定存储器空间不可用的情况下,管理程序可在412处确定是否等待指定存储器空间和/或指定资源。例如,管理程序229可在请求220包括要等待的指示时等待指定存储器空间和/或指定资源,并且该方法可转到406。在管理程序确定不等待指定存储器空间和/或指定资源的情况下,管理程序可在414处基于该确定而向存储器控制器发送存储器空间和/或指定资源不可用的指示。例如,管理程序229可向存储器控制器214发送指定存储器空间和/或指定资源不可用的指示,并且该方法可转到图3。
在管理程序确定该请求并不寻求指定存储器空间和/或指定资源的情况下,在416处,管理程序可确定从管理程序是否可获得存储器空间和/或资源。例如,管理程序229可确定请求220是寻求数量而用于一般存储器空间的和/或寻求任何处理器资源而用于一般资源的。管理程序229可利用表格278来确定是否可从管理器229获得该数量和/或处理器资源。
在可从管理程序获得一般存储器空间和/或一般资源的情况下,在408处,管理程序可将存储器空间和/或资源解除分配。例如,管理程序229可通过修改表格278以反映存储器空间和/或资源到存储器控制器214或到第一资源的解除分配和/或分配来将存储器空间和/或资源解除分配。在410处,管理程序可基于该确定而向存储器控制器发送存储器空间和/或资源可用的指示。例如,管理程序229可向存储器控制器214发送存储器空间和/或资源可用的指示,并且该方法可转到图3。
在从管理程序不可获得一般存储器和/或一般资源的情况下,在418处,管理程序可确定从操作系统是否可获得存储器空间和/或资源。例如,管理程序229可利用表格278来确定从操作系统258、259、260中的任何一者是否可获得该数量和/或处理器资源。在420处,管理程序可基于该确定向存储器控制器发送从操作系统可获得存储器空间和/或资源的指示。例如,管理程序229可向存储器控制器214发送从操作系统258、259、260中的一者可获得存储器空间和/或资源的指示,并且该方法可转到图3。
在从管理程序不可获得一般存储器和/或一般资源的情况下,在422处,管理程序可确定从进程是否可获得存储器空间和/或资源。例如,图2的管理程序229可利用表格278来确定从进程279、280、281中的任何一者是否可获得该数量和/或处理器资源。在424处,管理程序可基于该确定向存储器控制器发送从进程可获得存储器空间和/或资源的指示。例如,管理程序229可向存储器控制器214发送从进程279、280、281中的一者可获得存储器空间和/或资源的指示,并且该方法可转到图3。
在从进程不可获得一般存储器空间和/或一般资源的情况下,管理程序可基于该确定而向存储器控制器发送从进程不可获得存储器空间和/或资源的指示。例如,管理程序229可向存储器控制器214发送从进程279、280、281中的一者不可获得存储器空间和/或资源的指示,并且该方法可转到图3。
返回参考图3,首先转到312,存储器控制器可从图4接收从操作系统、进程或其任何组合可获得存储器空间和/或资源的指示(或多个指示)。例如,存储器控制器214可从管理程序229接收从操作系统258、259、260中的一者、从进程279、280、281中的一者或其任何组合可获得存储器空间和/或资源的指示,尤其是当从管理程序229不可获得存储器空间和/或资源时。
在314处,存储器控制器可响应于接收到的一个或多个指示而向操作系统、进程或其任何组合发送请求。例如,存储器控制器214可响应于接收到的该指示而向操作系统258、259、260中的一者、进程279、280、281中的一者或其任何组合发送请求220。在316处,该方法可转到用于操作系统258、259、260的图5或用于进程279、280、281的图6。
在318处,存储器控制器可接收从图5、图6或其任何组合不可获得存储器空间的指示。在320处,存储器控制器可利用图7来将不可用的存储器空间拷贝到存储器控制器的独有存储器空间中并利用该不可用存储器空间。例如,接收到请求220的操作系统258、259、260,进程279、280、281或其任何组合可向存储器控制器214发送存储器空间不可用的指示,即使管理程序229基于其数据而指示存储器空间可用。例如,即使管理程序229可确定从操作系统260可获得存储器空间,但是操作系统260可能已将该存储器空间分配给应用程序,并且管理程序229可能在其确定之前未接收到该数据。响应于这一存储器空间不可用的指示,存储器控制器214可将不可用存储器空间从管理程序229、操作系统258、259、260、进程279、280、281或其任何组合拷贝到存储器控制器214的独有存储器空间224中并使用该不可用存储器空间。从图7,该方法可转到图3。在下文中将更详细地讨论图5、6、7。
可替换地或附加地,当存储器控制器接收到从图4、图5、图6或其任何组合不可获得存储器空间和/或资源的指示时,并且当请求220来自第一资源时,在321处,存储器控制器可向第一资源传送存储器空间和/或资源不可用的指示。例如,存储器控制器214可向第一资源发送存储器空间和/或资源不可用的指示。
在322处,存储器控制器可从管理程序、操作系统、进程或其任何组合接收存储器空间和/或资源可用的指示。例如,存储器控制器214可从来自图4、5、6的管理程序229,操作系统258、259、260,进程279、280、281或其任何组合接收指示。当代表第一资源请求存储器空间和/或资源时,在323处,存储器控制器可向第一资源传送存储器空间和/或资源可用的指示。例如,存储器控制器214可向第一资源发送存储器空间和/或资源可用的指示(例如,与322基本上相同的指示、与322相比修改的指示或与322相比的新的指示)。从存储器控制器214到第一资源的指示可指示可用存储器空间和/或可用资源的来源(例如,从管理程序229可获得存储器空间和/或可用资源,与操作系统258、259、260中的一者相反)。该指示还可包括对应于可用的存储器空间的存储器212的一个或多个物理地址和/或可用的资源的标识符,尤其是如果请求220是用于一般存储其空间和/或一般资源的话。如果请求220是用于指定存储器空间和/或指定资源的,则对应于可用的存储器空间的一个或多个物理地址和/或可用的资源的标识符应与请求220所寻求的一个或多个物理地址和/或标识符匹配。
例如,如果第一资源是DASD236,则可将可用存储器空间和/或可用资源示为DASD存储器空间298和/或DAS资源299。第一资源可从存储器控制器214接收指示并对其做出反应,如图8(下面讨论)中所示。接下来,该方法可转到302、306或307,如本文所述。
当为了存储器控制器自己使用而请求存储器空间和/或资源时,在324处,存储器控制器可在存储器空间和/或资源被存储器控制器使用之前寄存存储器空间和/或资源。例如,在322处,存储器控制器214可从来自图4、5、6的管理程序229、操作系统258、259、260、进程279、280、281或其任何组合接收指示,并且可将可用存储器空间和/或可用资源示为MC存储器空间223和/或MC资源231。该指示可指示可用存储器空间和/或可用资源的来源(例如,从管理程序229可获得存储器空间和/或可用资源,与操作系统258、259、260中的一者相反)。该指示还可包括对应于可用的存储器空间的存储器212的一个或多个物理地址和/或可用的资源的标识符,尤其是如果请求220是用于一般存储其空间和/或一般资源的话。如果请求220是用于指定存储器空间和/或指定资源,则对应于可用的存储器空间的一个或多个物理地址和/或可用的资源的标识符应与请求220所寻求的一个或多个物理地址和/或标识符匹配。
存储器控制器214可在使用之前将存储器空间和/或资源寄存在寄存器221处。此外或可替换地,存储器控制器214可在存储器控制器214开始利用存储器空间和/或资源之前针对表格278用管理程序229寄存存储器空间和/或资源,诸如寄存存储器212的哪个物理地址范围和/或寄存已经使得哪些资源可用于存储器控制器214。
在326处,存储器控制器可(例如,在初始化时段之后)使用存储器空间和/或资源。例如,存储器控制器214可以多种方式来利用存储器空间和/或资源,包括传统上并未与存储器控制器相关联的方式。存储器控制器214可具有存储器空间和/或资源的独有使用。可将存储器空间和/或资源用于测试、校准、追踪、高速缓存、优化、计算、变换、加密、解密、预取、分页、预编码、预解码、压缩、解压缩、重映射、做镜像、做影或作为便笺式存储器中的至少一项。被请求的资源可以是用以执行这些操作的处理器资源(例如,请求处理器210执行加密、压缩等)和/或被请求的资源可以是用以存储用于或来自这些操作的数据的输入—输出资源(例如,请求用于高速缓存、计算(例如矩阵数学运算)等)的DASD248。
例如,存储器控制器214可将存储器空间和/或资源用于测试和/或校准,诸如用于系统级测试以确保裕度。例如,虽然存储器控制器214具有对存储器空间和/或资源的控制,但存储器控制器214可自由地向对应于存储器空间和/或资源的一个或多个物理地址中写入测试图案,以及对用于该存储器空间和/或该资源的延迟和/或模拟定时执行修改,而不破坏可在计算系统200中的其他地方使用的数据。例如,可改善图案测试和接口校准的准确性,因为可利用更实际的条件。
作为另一示例,存储器控制器214可在初始化时段之后从管理程序229请求存储器空间和/或资源,并将响应于请求220而被使得可用的存储器空间和/或资源用于图案测试和接口校准。存储器控制器214可读取和写入指定图案、比较结果并确定操作裕度、统计结果以及构造以获得原位的最佳校准。可实现更准确的运行时间校准,因为在运行系统中的初始化时段之后存在的系统条件可不同于在初始化时段期间存在的那些系统条件。例如,当系统的芯片被通过使用而被加热时,在初始化时段之后与在初始化期间实现的结果和调节可不同。在系统相对静寂时的初始化时段期间,也可不考虑诸如抖动、串话、符号间干扰、电源噪声或其任何组合之类的其他影响。因此,响应于来自存储器控制器214的请求220而在初始化时段之后可供存储器控制器214使用的存储器空间和/或资源可改善测试和校准的准确度,因为可考虑到更真实的条件。
如果系统的使用由于客户活动而移位,则也可虑及此移位。例如,如果在一段繁重且密集的利用期间对系统进行校准,可在较低且不那么密集的利用期间执行测试和校准以虑及不同的条件。
在使用已完成之后可由存储器控制器214将存储器空间和/或资源释放,并且存储器空间和/或资源可被分配并被另一实体使用。例如,如果管理程序299提供存储器空间和/或资源,则存储器控制器214可通过向管理程序229发送存储器控制器214完成的指示来释放存储器空间和/或资源。管理程序229可将存储器控制器214所使用的存储器空间和/或资源解除分配,包括适当地修改表格278。
作为另一示例,存储器控制器214可将存储器空间和/或资源用于追踪。存储器控制器逻辑216可包括被配置成监测某些访问的追踪功能,并且可使用该存储器空间和/或资源来保存追踪的结果。例如,追踪可捕捉对存储器212的某些位置的访问。这些结果然后可用来出于多种目的分析代码行为,诸如改善性能、代码分析、调试或其任何组合。可针对指定处理器、物理地址位置、物理地址范围、访问类型或其任何组合来配置追踪功能。在使用已经完成之后可由存储器控制器214释放存储器空间和/或资源。
存储器控制器214可将存储器空间和/或资源用于高速缓存和/或优化,诸如通过设立临时高速缓存器来优化存储器访问。例如,如果存储器控制器214检测到写入分散遍布于整个存储器212且因此使得多个逻辑秩(logical rank)保持上电以服务于请求,则存储器控制器214可生成用于存储器空间(例如,存储器块212)的请求220并在存储器空间和/或资源处设立高速缓存器。一旦由于访问模式的变化或关闭的进程而不再需要高速缓存器,则存储器控制器214清除其高速缓存器条目并释放存储器空间和/或资源。这种高速缓存可通过将其集中到一个区域上而减少相异访问的数目。此外,此减少可允许逻辑秩空闲和/或处于掉电状态达到更长的时间段,因为那些秩可不需要服务于在其高速缓存器中命中的访问。存储器访问的此分批或分组还可减少系统功率。
存储器控制器214可将存储器空间和/或资源用于计算。矩阵数学运算一般地是计算密集的功能。然而,作为使处理器208受负担的替代,例如可将硬件放入存储器控制器214中以执行计算。在这种情形中,可以对存储器控制器214给出将对其执行数学运算的数据。随着执行矩阵数学运算,可将中间结果放置到存储器空间和/或资源中以便执行计算。在计算完成之后,可向处理器208呈现结果。在使用已经完成之后可由存储器控制器214释放存储器空间和/或资源。
存储器控制器214可投机性地(例如,投机性需要)或应处理器的请求(例如,实际需要)将存储器空间和/或资源用于处理器的实际上任何的计算。例如,存储器控制器214可使用存储器空间和/或资源来对数据进行变换以供处理器208使用,诸如用于矩阵转置或其他矩阵数学运算或图像数据,其中可投机性地或应处理器208的请求而完成变换。随着存储器控制器214直接地在存储器空间和/或资源中执行这些计算,可将处理器208解除这些计算密集任务,并且其可在其等待来自存储器控制器214的结果的同时执行其他任务。除潜在地减少处理器208、210的负担之外,可通过使访问与干线业务交织来更好地利用存储器带宽,这可改善存储器212的接口(例如,DRAM接口)上的带宽使用或使其最大化。
存储器控制器214可将存储器空间和/或资源用于加密和/或解密。可以与计算类似的方式将存储器空间和/或资源用于加密和/或解密。例如,可利用存储器空间和/或资源来执行计算,包括直接地处理对象数据上的加密和/或解密算法,并且一旦加密和/或解密已经完成,则向处理器208返回结果。在存储器控制器214已完成其使用之后,可由存储器控制器214来释放存储器空间和/或资源。
存储器控制器214可将存储器空间和/或资源用于预取。例如,存储器控制器214可预取至少一个缓冲器、高速缓存器等,准备数据并关联至另一地址以机会性地访问所请求数据而不是对所请求数据招致更长的等待时间。存储器控制器214可对从疲劳的存储器分级结构中的较慢存储器进行预取。此外,存储器控制器214可参与数据的预编码、压缩、解压缩、解密或其任何组合以待处理器208进行的访问。在使用已完成之后可由存储器控制器214释放存储器空间和/或资源。
存储器控制器214可将存储器空间和/或资源用于重映射。如结合图2所讨论的,存储器控制器214可动态地将来自存储器212的一个有故障物理位置的内容重映射并移动至没有故障的存储器212的不同物理位子。存储器控制器214可向管理程序229传送重映射过程期间的状况或状态数据以及经由MC存储器空间223和/或寄存器222进行的最终重映射期。管理程序229可用新的配置来管理计算系统200,包括使用最终重映射并避免分配有故障存储器空间。
存储器控制器214可将存储器空间和/或资源用于做镜像。例如,存储器控制器214可在可供存储器控制器214使用的存储器空间和/或资源中对另一存储器空间在逻辑上做镜像。因此,两个存储器空间可在不使用多个存储器控制器的情况下且在不使用不同DIMM的情况下具有基本上相同的内容。可用较少的零件以价格比较低廉的方式创建镜像。在使用已经完成之后可由存储器控制器214释放存储器空间和/或资源。
存储器控制器214可将存储器空间和/或资源用于做影。例如,存储器控制器214可在可供存储器控制器214使用的存储器空间和/或资源中保持另一存储器空间的拷贝。然而,替代地,该拷贝可能不需要是相同的,例如如果该另一存储器空间是压缩的,则由存储器控制器214保持的拷贝可能是未压缩的。某些特征、图案等可被做影而其他的没有。在某些实施例中,可以组合方式使用做镜像和做影。在使用已经完成之后可由存储器控制器214释放存储器空间和/或资源。
存储器控制器214可将存储器空间和/或资源用于上游数据处理或上游数据存储中的至少一项。例如,存储器控制器214可请求存储器空间Y1和输入—输出资源Z1供独有使用,并且将存储器空间Y1指派为用于上游数据处理和上游数据存储的专用存储器区域。上游数据可指的是来自(例如,经由图1A—1C的网络控制器122的)网络的数据。存储器控制器214可与输入—输出资源Z1互锁以执行将在存储之前对上游数据应用的期望操作(例如,加密、压缩等)。因此,例如,可以对存储器控制器214给定作业(例如,由事件、处理器、管理程序等触发的作业),并且存储器控制器214可使用被使得可用的资源来直接地处理数据以完成该作业的资源。
存储器控制器214可将存储器空间和/或资源用于下游数据处理或下游数据存储中的至少一项。例如,存储器控制器214可请求存储器空间Y2和输入-输出资源Z2供独有使用,并且将存储器空间Y2指派为用于下游数据处理和下游数据存储的专用存储器区域。下游数据可以指的是到网络的数据。存储器控制器214可与输入—输出资源Z2互锁以在下游数据被从存储区读取时执行将对下游数据应用的期望操作(例如,解密、解压缩等)。
可替换地或附加地,存储器控制器214可请求存储器空间Y3和处理器资源Z3以供独有使用,并且适当地将存储器空间Y3指派为专用存储器区域。存储器控制器214可与处理器资源Z3互锁以执行存储器控制器214所支持的任何期望操作(例如,解密、解压缩等)或功能。
由存储器控制器214(例如,在初始化时段之后)使用存储器空间和/或资源不限于本文所述的那些。例如,可将存储器空间和/或资源用于分页(例如,由存储器控制器214分页出来到磁盘驱动器),适当地,作为存储器控制器214的“便笺式存储器”,以用于预编码等。
返回参考图3,在328处,存储器控制器可确定是否已经接收到存储器空间和/或资源不可供使用的指示。虽然存储器控制器可能能够在没有冲突的情况下使用存储器空间和/或资源,但进程279、280、281,操作系统258、259、260或其任何组合可能失去对其已经使得可供存储器控制器214使用的存储器空间和/或资源的控制,或者可另外不再能够对存储器控制器214授予存储器空间和/或资源。这可在授予过程、操作系统(或其驱动程序)或其任何组合被终止时发生。
为了虑及这些可能性,管理程序229可询问存储器控制器214中的诸如寄存器221之类的寄存器,其指示已分配存储器空间的一个或多个物理地址和/或已分配资源的标识符或其他数据。基于寄存器221,管理程序229可确定哪些存储器空间和/或哪些资源被分配给存储器控制器214,并在328处经由指示来告知存储器控制器214该存储器控制器214是否不再具有对该存储器空间和/或该资源的控制。附加地或可替换地,存储器控制器214可在存储器空间和/或资源直接地用于管理程序229之前寄存对应于存储器空间的一个或多个物理地址和/或其已被分配的资源的标识符。管理程序229的介入可在管理程序229向存储器控制器214分配存储器空间和/或资源时发生。管理程序229的介入还可在使得存储器空间和/或资源可供操作系统258、259、260中的一者使用且操作系统已被终止时发生,因为管理程序229可负责包括操作系统258、259、260的分区。
当用户级进程、驱动器或其任何组合被终止时,可在操作系统级使用类似方法。例如,操作系统258、259、260可通过在328处确定哪些存储器空间和/或哪些资源被分配给存储器控制器214,并且经由指示而告知存储器控制器214是否存储器控制器214不再具有对存储器空间和/或资源的控制来对OS驱动器285、286、287、进程279、280、281或其任何组合的终止做出反应。
在328处接收到指示的情况下,存储器控制器可在330处停止存储器空间和/或资源的使用并在332处释放存储器空间和/或资源。例如,存储器控制器214可响应于来自管理程序229、任何的操作系统258、259、260或其任何组合的指示而停止存储器空间和/或资源的使用。该方法可如本文所述地转到302、306或307。
在328处未接收到指示的情况下,存储器控制器可在334处继续使用存储器空间和/或资源并在使用已经完成之后释放存储器空间。例如,存储器控制器214可继续使用存储器空间和/或资源,并在使用已经完成之后释放存储器空间和/或资源。该方法可如本文所述地转到302或306。
转到图5,此图图示出由操作系统来处理(例如,在初始化时段之后传送)用于存储器空间和/或资源的(例如,来自存储器控制器以供其自己使用或代表第一资源的)请求的第一方法500的实施例,其可由图1A—1C的装置100和/或图2的计算系统200执行。具体而言,可由图1A—1C的操作系统132和/或图2的操作系统258、259、260来执行方法500。方法500将参考来自图2的项目。
在502处,操作系统(例如,结合图3所讨论的)可在初始化时段之后从存储器控制器接收用于存储器空间和/或资源的请求。例如,操作系统258、259、260中的任何一者可从存储器控制器214接收请求220。
在504处,操作系统可确定是否可从操作系统获得存储器空间和/或资源。例如,假设操作系统258从存储器控制器214接收到请求220,操作系统258可利用其对应的表格294来确定是否可从操作系统258获得存储器空间和/或资源。
在存储器空间和/或资源可用的情况下,在506处,操作系统可将存储器空间和/或资源解除分配。例如操作系统258可将存储器空间和/或资源解除分配,包括修改表格294以反映存储器空间和/或资源到存储器控制器214或到第一资源的解除分配和/或分配。例如,操作系统258可基于请求220而向存储器控制器214或向第一资源分配存储器空间和/或资源。在508处,操作系统可基于该确定而向存储器控制器发送存储器空间和/或资源可用的指示。例如,操作系统258可向存储器控制器214发送存储器空间和/或资源可用的指示,并且该方法可转到图3,如本文所述。在存储器空间和/或资源不可用的情况下,在510处,操作系统可向存储器控制器发送存储器空间和/或资源不可用的指示。例如,操作系统258可向存储器控制器214发送存储器空间和/或资源不可用的指示,并且该方法可转到图3,如本文所述。
转到图6,此图图示出由进程来处理(例如,在初始化时段之后传送的)用于存储器空间和/或资源的(例如,来自存储器控制器以供其自己使用或代表第一资源的)请求的第一方法600的实施例,其可由图1A-1C的装置100和/或图2的计算系统200执行。具体而言,可由图1A—1C的进程150和/或图2的进程279、280、281来执行方法600。方法600将参考来自图2的项目。
在602处,进程(例如,结合图3所讨论的)可在初始化时段之后从存储器控制器接收用于存储器空间和/或资源的请求。例如,图2的任何进程279、280、281可从存储器控制器214接收由存储器控制器214或工具226或第一资源生成的请求。
在604处,进程可从操作系统请求存储器空间和/或资源。例如,假设进程279从存储器控制器214接收到请求220,进程279可从对应的操作系统258请求存储器空间和/或资源。操作系统258可利用其对应的表格294来将存储器空间和/或资源解除分配和/或分配给进程279。可将被使得可用于进程279的存储器空间和/或资源示为进程存储器空间282和/或进程资源241。可替换地,进程279可能已经具有为其分配的存储器空间和/或资源。
在606处,进程可确定是否使得可从操作系统获得存储器空间和/或资源。例如,进程279可基于来自操作系统258的指示或基于表格294而确定操作系统258是否使得存储器空间和/或资源可用于进程279。
在存储器空间和/或资源可用的情况,在608处,进程可向存储器控制器发送存储器空间和/或资源可用的指示。例如,进程279可向存储器控制器214发送存储器空间和/或资源可用的指示,并且该方法可转到图3,如本文所述。在存储器空间和/或资源不可用的情况,在610处,进程可向存储器控制器发送存储器空间和/或资源不可用的指示。例如,进程279可向存储器控制器214发送存储器空间和/或资源不可用的指示,并且该方法可转到图3,如本文所述。
图7图示出可由图1A—1C的装置100和/或图2的计算系统200执行的(例如,在初始化时段之后)将存储器空间拷贝到存储器控制器的独有存储器空间的第一方法700的实施例。具体而言,可由诸如图1A—1C的存储器控制器114和/或图2的存储器控制器214之类的存储器控制器来执行方法700。可在初始化时段之后将存储器空间拷贝到存储器控制器的独有存储器空间。方法700将参考来自图2的项目。
在702处,存储器控制器(例如,结合图3所讨论的)可在初始化时段之后将第二存储器空间的内容拷贝到独有第一存储器空间。例如,存储器控制器214可在初始化时段之后将存储器212的实际上任何的部分(例如,第二存储器空间)的内容拷贝到其独有存储器空间224(例如,独有第一存储器空间)。例如,存储器控制器214可根据接收到的指示来拷贝不可用的存储器控制器214经由请求220而从管理程序229、操作系统258、259、260、进程279、280、281或其任何组合所请求的存储器212的地址范围X的内容。可替换地,在初始化时段之后,存储器控制器214可简单地将地址范围X的内容拷贝到独有存储器空间224中,无论存储器控制器214是否请求此存储器空间,无论存储器空间基于接收到的指示而是否可用,无论存储器空间被分配给哪个实体等。因此,可将独有存储器空间224用于做影。可将独有存储器空间224用于测试、校准、追踪、高速缓存、优化、计算、变换、加密、解密、预取、分页、预编码、预解码、压缩、解压缩、重映射、做镜像、做影或作为便笺式存储器中的至少一项。由存储器控制器214进行的独有存储器空间224的使用可取决于独有存储器空间224的大小。存储器控制器214也可将独有存储器空间224用于其他用途。
在704处,存储器控制器可使用第二存储器空间。例如,存储器控制器214可将存储器212的地址范围X用于测试、校准、追踪、高速缓存、优化、计算、变换、加密、解密、预取、分页、预编码、预解码、压缩、解压缩、重映射、做镜像、做影或作为便笺式存储器中的至少一项。存储器控制器214也可将地址范围X用于其他用途。
在706处,存储器控制器可在第二存储器空间被存储器控制器使用期间拦截与第二存储器空间相关联的请求。例如,存储器控制器214可在存储器212的地址范围X的使用期间拦截对存储器212的地址范围X进行访问、读取或写入或其任何组合额至少一个请求(例如,所有请求)。
在708处,存储器控制器可在存储器控制器通过独有第一存储器空间使用第二存储器空间期间服务于与第二存储器空间相关联的请求。例如,存储器控制器214可在通过独有存储器空间224使用存储器212的地址范围X期间服务于所拦截的请求。具体地,可从通过从地址范围X被拷贝到独有存储器空间224的内容服务于该请求。
在710处,存储器控制器可在第二存储器空间的使用已经完成之后将独有存储器空间的内容拷贝到第二存储器空间。例如,存储器控制器214可在地址范围X的使用已经完成之后将存储器212的地址范围X的内容从独有存储器空间224拷贝回到地址范围X。因此,对应于地址范围X的第二存储器空间可在初始化时段和内容已被恢复到使用前状态之后被存储器控制器214使用。该方法可如本文所述地转到图3。
通过用存储器的小区域补充存储器控制器硬件,诸如eDRAM,此存储器(例如,专有存储器空间224)可在存储器控制器逻辑中并始终在其独有控制下。存储器控制器(例如,存储器控制器214)可(例如,在初始化时段之后)使用此存储器块来对主存储器(例如,存储器212)的一部分做影或用于其他用途。一旦存储器控制器将主存储器的一块做影到其自己的独有存储器中,则可不再要求保持在主存储器的对应内容,因为可由存储器控制器自己的独有存储器来服务于对主存储器的该块的所有访问。此外,存储器控制器可在无需系统数据的担心或损坏的情况下对主存储器的被做影区域执行数据破坏测试和校准。一旦已执行期望的动作,则可将数据的影子拷贝返回到主存储器中的其先前位置,并且存储器控制器的独有存储器空间被自由地用来对主存储器的另一位置做影。
图8图示出可由图1A—1C的装置100和/或图2的计算系统200执行的由第一资源(例如,处理器资源和/或输入/输出资源,在初始化时段之后)使用存储器控制器来请求存储器空间和/或资源的第一方法的实施例。方法800可由第一资源,诸如图1A—1C的处理器120、图1A—1C的网络控制器122、图1A—1C的I/O控制器124、图2的处理器210、图2的DASD236等来执行。方法800参考来自图2的部件。
在802处,第一资源可在初始化时段之后检测事件。在804处,第一资源可响应于事件而生成用于存储器空间和/或资源的请求。例如,可将DASD236配置成检测事件228并响应于事件228而生成请求220。第一资源也可由于其他原因而生成用于存储器空间和/或资源的请求220。
在806处,第一资源可将该请求传送至存储器控制器。例如,DASD236可经由总线将请求220传送至存储器控制器214。请求220可被存储器控制器214接收并如图3、4、5、6所述地处理。
在808处,第一资源可接收到存储器空间和/或资源不可用的指示。例如,DASD236可响应于图3、4、5、6的处理而从存储器控制器214接收到存储器空间和/或资源不可用的指示。该方法可如本文所述地转到802。
可替换地,在810处,第一资源可接收存储器空间和/或资源可用的指示。例如,DASD236可响应于图3、4、5、6的处理而从存储器控制器214接收到存储器空间和/或资源可用的指示。可从诸如使得存储器空间和/或资源可用的计算机程序之类的计算机程序接收到存储器空间和/或资源可用的指示,
在812处,第一资源可在存储器空间和/或资源被第一资源使用之前寄存存储器空间和/或资源。例如,DASD236可使得存储器空间和/或资源在使用之前被寄存在类似于221的寄存器或其他存储区中。此外或者可替换地,DASD236可针对表格278用管理程序229寄存存储器空间和/或资源,诸如在使用之前寄存存储器212的哪些物理地址范围和/或寄存哪些资源标识符已被使得可用于DASD236。可替换地或附加地,存储器控制器214甚至可将可用于DASD236的存储器空间和/或资源寄存在寄存器221中。
在814处,第一资源可(例如在初始化时段之后)使用存储器空间和/或资源。例如,第一资源可以多种方式来利用存储器空间和/或资源,包括传统上并未与第一资源相关联的方式。第一资源可具有存储器空间和/或资源(例如第二资源)的独有使用。存储器空间和/或资源可被第一资源用于测试、校准、追踪、高速缓存、优化、计算、变换、加密、解密、预取、分页、预编码、预解码、压缩、解压缩、重映射、做镜像、做影或作为便笺式存储器中的至少一项。DASD236可请求处理器资源执行这些操作(例如,请求处理器210执行加密、压缩等)和/或请求输入/输出资源或存储器空间以存储用于或来自这些操作的数据(例如,请求DASD248或其他存储器空间以用于高速缓存、计算(例如,矩阵数学运算)等)。第一资源可使用如上文结合图3的326所讨论的存储器空间和/或资源。
此外,第一资源可将存储器空间和/或资源用于上游数据处理或上游数据存储中的至少一项。第一资源可将存储器空间和/或资源用于下游数据处理或下游数据存储中的至少一项。可替换地或附加地,第一资源可请求存储器空间和/或资源以供独有使用,以及适当地将存储器空间Y3指派为专用存储器区域。第一资源还可与资源互锁以执行任何期望操作(例如,解密、解压缩等)或功能(例如,包括存储器控制器214所支持的操作)。存储器空间和/或资源被第一资源(例如,在初始化时段之后)使用不限于本文所述的那些。例如,存储器空间和/或资源可被用于分页、作为“便笺式存储器”、用于预编码等。例如,DASD236可使用存储器空间和/或资源,如上文结合图3的326所讨论的。
返回参考图8,在816处,第一资源可确定是否接收到存储器空间和/或资源不可供使用的指示。例如,如果管理程序不再能够使得存储器空间和/或资源可用于DASD236,则管理程序229可向DASD236发送指示。可替换地,该指示可由管理程序229传送至存储器控制器214,并且存储器控制器214将该指示传送至DASD236。
在816处接收到该指示的情况下,第一资源可在818处停止存储器空间和/或资源的使用,并在820处释放存储器空间和/或资源。例如,DASD236可响应于来自管理程序229,任何的操作系统258、259、260或,进程279、280、281,存储器控制器214或其任何组合的指示而停止存储器空间和/或资源的使用。该方法可如本文所述地转到802。
在在816处未接收到该指示的情况下,第一资源可在822处继续使用存储器空间和/或资源,并在使用已经完成之后在820处释放存储器空间和/或资源。例如,DASD236可继续使用存储器空间和/或资源,并在使用已经完成之后释放存储器空间和/或资源。该方法可如本文所述地转到802。
存储器控制器可穿过边界进入管理程序的存储器空间、管理程序的资源、操作系统的(或驱动器的)存储器空间、操作系统的(或驱动器的)资源、进程的存储器空间、进程的资源或其任何组合。一旦已穿过这些边界,并且存储器控制器的硬件逻辑可访问并控制存储器空间和/或资源,则存储器控制器可用传统上并未与存储器控制器相关联的存储器空间和/或资源而参与功能。
可为存储器控制器提供返回用于存储器和/或资源的各区段的管理程序、操作系统、进程或其任何组合的请求路径。如上文所述,该请求可由存储器控制器生成,并且可由管理程序、操作系统、进程或其任何组合准许。可以分配自由存储器空间或页面和/或资源以供存储器控制器使用而不与系统数据或进程冲突。可将存储器空间或页面固定并进行虚拟至物理映射,以促进存储器控制器指挥到物理存储器区域的分配。存储器控制器可请求用于临时使用(或者甚至持久性使用)的页面和/或资源,当不再需要时返回给系统。在系统操作期间获得对存储器和/或资源的各区域的永久性或临时共享的或独有的控制且经系统软件准许的存储器控制器能力可扩展存储器控制器的作用以获得系统效率和可靠性。此外,存储器控制器还可将存储器空间拷贝到其自己的独有存储器空间中,并根据期望而使用存储器空间。
此外,存储器控制器可被第一资源、诸如输入—输出资源或处理器资源用来请求存储器空间和/或资源。第一资源可生成用于存储器空间和/或资源的请求,并且存储器控制器可与任何管理程序、操作系统或进程通信以满足来自第一资源的请求。存储器控制器可为了其自己的使用或代表第一资源而请求存储器空间和/或资源,进一步扩展了存储器控制器的作用。可分配甚至更多的自由存储器空间或页面和/或资源并被第一资源使用而不与系统数据或进程冲突,这可进一步改善系统中的利用率和效率。
可对本文公开的实施例进行各种修改。例如,在某些实施例中,存储器控制器可仅从管理程序而不从操作系统且不从进程请求存储器空间和/或资源。例如,可将图3的方法300修改成去除312、314、316和318,可将方法400修改成去除418、420、422、424,可去除图5—6,并且可相应地修改图2。在某些实施例中,存储器控制器可从管理程序和/或操作系统而不从进程请求和/或资源。并且,OS驱动器可具有使用其存储器空间(例如OS存储器空间)和/或其资源或产生用以满足该请求的进程的选项。在某些实施例中,可利用与本文公开的不同的顺序。例如,可将用于存储器空间和/或资源的请求首先发送到操作系统或进程而不是到管理程序。此外,不需要将用于存储器空间和/或资源的请求发送到全部的三个层级。此外,如上文所指示的,某个实施例甚至可不包括管理程序。替代地,存储器控制器可经由存储器控制器设备驱动器与被配置成使得存储器空间和/或资源可供使用的计算机程序(例如,操作系统)相交互。
本文所述的特定实施例可采取完全硬件实施例、完全软件实施例或包含硬件和软件元件两者的实施例的形式。在特定实施例中,用被嵌入处理器可读存储介质中且由处理器执行的软件来实现公开的方法,其包括但不限于固件、常驻软件、微代码等。
此外,本公开的实施例、诸如一个或多个实施例可采取计算机程序产品的形式,其可从提供程序代码以供计算机或任何指令执行系统或与之相结合地使用的计算机可用或计算机可读存储介质。出于本描述的目的,计算机可用或计算机可读存储介质可以是能够有形地体现计算机程序且能够包含、存储、传送、传播或传输程序以供指令执行系统、装置或设备或与之相结合地使用的任何装置。
在各种实施例中,介质可以包括电子、磁、光、电磁、红外或半导体系统(或设备或器件)或传播介质。计算机可读存储介质的示例包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘等。光盘的当前示例包括紧凑式磁盘--只读存储器(CD-ROM)、紧凑式磁盘-读/写(CD-R/W)和数字多功能磁盘(DVD)。
适合于存储和/或执行程序代码的数据处理系统可以包括被直接地或通过系统总线间接地耦合到存储器元件的至少一个处理器。存储器元件可以包括在程序代码的实际执行期间所采用的本地存储器、大容量储存器以及高速缓冲存储器,其提供至少某些程序代码的临时存储以便减少在执行期间必须从大容量储存器取读代码的次数。
输入/输出或I/O设备(包括但不限于键盘、显示器、指向设备等)能够直接地或通过中间I/O控制器耦合到数据处理系统。还可以将网络适配器耦合到系统以使得数据处理系统能够通过中间私人或公共网络被耦合到其他数据处理系统或远程打印机或存储设备。调制解调器、有线调制解调器和以太网卡仅仅是几个当前可用类型的网络适配器。
提供公开实施例的前述描述是为了使得本领域的任何技术人员能够实现或使用公开实施例。对这些实施例的各种修改对于本领域的技术人员而言将是显而易见的,并且在不脱离本公开的范围的情况下可将本文定义的一般原理应用于其他实施例。例如,虽然某些上述实施例可属于硬件中断,但中断的另一实施例可包括基于可用的物理存储器的量的“if then”或“条件转移”软件指令。此类条件软件中断可同样地用于硬件中断,因为可在当前过程上停止执行,并且存储器处理代码可开始执行。硬件中断可与代码操作异步且可在代码中的任何点处进入,而程序实现可能必须具体地使用软件代码指令来检查可用存储器。因此,本公开并不意图局限于本文中所示的实施例,而是将符合可能与由以下权利要求定义的原理和特征一致的最宽泛范围。

Claims (22)

1.一种使用存储器控制器来请求资源的方法,所述方法包括:
由存储器控制器向计算机程序传送用于资源的请求,其中所述存储器控制器被配置成将存储器初始化,并且其中所述存储器控制器被配置成按照指示对所述存储器执行操作,并且其中所述计算机程序被配置成响应于用于所述资源的请求而使得资源可用;以及
由所述存储器控制器响应于来自所述计算机程序的所述资源可用的指示而使用所述资源。
2.根据权利要求1所述的方法,其中由所述存储器控制器请求的所述资源是处理器资源或输入—输出资源中的至少一项。
3.根据权利要求1所述的方法,其中使用所述资源包括由所述存储器控制器与所述资源互锁。
4.根据权利要求1所述的方法,其中使用所述资源包括由所述存储器控制器将所述资源用于上游数据处理或上游数据存储中的至少一项。
5.根据权利要求1所述的方法,其中使用所述资源包括由所述存储器控制器将所述资源用于下游数据处理或下游数据存储中的至少一项。
6.根据权利要求1所述的方法,其中使用所述资源包括由所述存储器控制器将所述资源用于如下各项中的至少一项:测试、校准、追踪、高速缓存、优化、计算、变换、加密、解密、预取、分页、预编码、预解码、压缩、解压缩、重映射、做镜像、做影或作为便笺式存储器。
7.根据权利要求1所述的方法,其中所述存储器控制器通过设备驱动器或虚拟设备驱动器中的至少一项来与所述计算机程序通信。
8.根据权利要求1所述的方法,其中用于所述资源的所述请求在初始化时段之后被所述存储器控制器传送至所述计算机程序。
9.根据权利要求1所述的方法,其中所述计算机程序是如下各项中的至少一项:管理程序计算机程序、操作系统计算机程序、进程计算机程序、基本输入输出系统计算机程序或键盘视频鼠标计算机程序。
10.一种使用存储器控制器来请求存储器空间或资源中的至少一项的方法,所述方法包括:
由存储器控制器从第一资源接收用于存储器的存储器空间或第二资源中的至少一项的请求,其中所述存储器控制器被配置成将来自所述第一资源的所述请求传送到计算机程序,其中所述存储器控制器被配置成将所述存储器初始化,并且其中所述存储器控制器被配置成按照指示对所述存储器执行操作,并且其中所述计算机程序被配置成响应于用于所述存储器的所述存储器空间和所述资源的请求而使得所述存储器的存储器空间和资源可用;以及
由所述存储器控制器响应于来自所述计算机程序的所述存储器空间或所述第二资源中的所述至少一项可用的第二指示而向所述第一资源传送所述存储器空间或所述第二资源中的所述至少一项可用的第一指示。
11.根据权利要求10所述的方法,其中所述第一资源是处理器资源或输入—输出资源中的至少一项。
12.根据权利要求10所述的方法,其中所述第二资源是处理器资源或输入—输出资源中的至少一项。
13.根据权利要求10所述的方法,其中所述存储器控制器通过设备驱动器或虚拟设备驱动器中的至少一项来与所述计算机程序通信。
14.一种使用存储器控制器来请求存储器空间或资源中的至少一项的方法,所述方法包括:
由第一资源向存储器控制器传送用于存储器的存储器空间或第二资源中的至少一项的请求,其中所述存储器控制器被配置成将来自所述第一资源的所述请求传送至计算机程序,其中所述存储器控制器被配置成将所述存储器初始化,并且其中所述存储器控制器被配置成按照指示对所述存储器执行操作,并且其中所述计算机程序被配置成响应于用于所述存储器的所述存储器空间和所述资源的请求而使得所述存储器的存储器空间和资源可用;以及
由所述第一资源响应于所述存储器空间或所述第二资源中的所述至少一项可用的指示而使用所述存储器空间或所述第二资源中的所述至少一项。
15.根据权利要求14所述的方法,其中所述第一资源是处理器资源或输入—输出资源中的至少一项。
16.根据权利要求14所述的方法,其中所述第二资源是处理器资源或输入—输出资源中的至少一项。
17.根据权利要求14所述的方法,还包括从所述存储器控制器或所述计算机程序中的至少一项接收所述指示。
18.根据权利要求14所述的方法,还包括由所述第一资源将所述存储器空间或所述第二资源中的所述至少一项用于上游数据处理或上游数据存储中的至少一项。
19.根据权利要求14所述的方法,还包括由所述第一资源将所述存储器空间或所述第二资源中的所述至少一项用于下游数据处理或下游数据存储中的至少一项。
20.根据权利要求14所述的方法,还包括由所述第一资源将所述存储器空间或所述第二资源中的所述至少一项用于如下各项中的至少一项:测试、校准、追踪、高速缓存、优化、计算、变换、加密、解密、预取、分页、预编码、预解码、压缩、解压缩、重映射、做镜像、做影或作为便笺式存储器。
21.一种用于使用存储器控制器来请求资源以执行根据权利要求1至9中任一项所述的方法步骤的系统。
22.一种用于使用存储器控制器来请求存储器空间或资源中的至少一项以执行根据权利要求9至20中任一项所述的方法步骤的系统。
CN201410354471.2A 2013-07-23 2014-07-23 使用存储器控制器来请求资源的方法和系统 Active CN104346304B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/948,290 US10229043B2 (en) 2013-07-23 2013-07-23 Requesting memory spaces and resources using a memory controller
US13/948,290 2013-07-23

Publications (2)

Publication Number Publication Date
CN104346304A true CN104346304A (zh) 2015-02-11
CN104346304B CN104346304B (zh) 2018-02-02

Family

ID=52391509

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410354471.2A Active CN104346304B (zh) 2013-07-23 2014-07-23 使用存储器控制器来请求资源的方法和系统

Country Status (2)

Country Link
US (2) US10229043B2 (zh)
CN (1) CN104346304B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106257403A (zh) * 2015-06-19 2016-12-28 Hgst荷兰公司 用于关于数据传送的单通熵检测的装置和方法
CN107533602A (zh) * 2016-04-22 2018-01-02 慧与发展有限责任合伙企业 利用资源控制器的用于写时复制的存储器控制器的配置

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2932591C (en) 2006-02-07 2023-07-25 Ticketmaster Methods and systems for reducing burst usage of a networked computer system
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US9459900B2 (en) * 2014-01-13 2016-10-04 Red Hat Israel, Ltd. Hypervisor-based balloon page initialization
US10223148B2 (en) * 2014-06-30 2019-03-05 Hewlett-Packard Development Company, L.P. Full virtual machine functionality
US10586047B2 (en) * 2014-06-30 2020-03-10 Hewlett-Packard Development Company, L.P. Securely sending a complete initialization package
US9798567B2 (en) 2014-11-25 2017-10-24 The Research Foundation For The State University Of New York Multi-hypervisor virtual machines
US10491667B1 (en) * 2015-03-16 2019-11-26 Amazon Technologies, Inc. Customized memory modules in multi-tenant service provider systems
KR102464801B1 (ko) * 2015-04-14 2022-11-07 삼성전자주식회사 반도체 장치의 동작 방법 및 반도체 시스템
KR102373225B1 (ko) * 2015-06-10 2022-03-14 삼성전자주식회사 전자 장치 및 전자 장치에서 기능 제공 방법
US10078567B2 (en) 2016-03-18 2018-09-18 Alibaba Group Holding Limited Implementing fault tolerance in computer system memory
US20180039518A1 (en) * 2016-08-02 2018-02-08 Knuedge Incorporated Arbitrating access to a resource that is shared by multiple processors
US10346050B2 (en) 2016-10-26 2019-07-09 International Business Machines Corporation Virtualization of memory compute functionality
US10761751B2 (en) 2017-11-14 2020-09-01 International Business Machines Corporation Configuration state registers grouped based on functional affinity
US10552070B2 (en) * 2017-11-14 2020-02-04 International Business Machines Corporation Separation of memory-based configuration state registers based on groups
US10592164B2 (en) 2017-11-14 2020-03-17 International Business Machines Corporation Portions of configuration state registers in-memory
US10642757B2 (en) 2017-11-14 2020-05-05 International Business Machines Corporation Single call to perform pin and unpin operations
US10761983B2 (en) * 2017-11-14 2020-09-01 International Business Machines Corporation Memory based configuration state registers
US10901738B2 (en) 2017-11-14 2021-01-26 International Business Machines Corporation Bulk store and load operations of configuration state registers
US10558366B2 (en) 2017-11-14 2020-02-11 International Business Machines Corporation Automatic pinning of units of memory
US10698686B2 (en) * 2017-11-14 2020-06-30 International Business Machines Corporation Configurable architectural placement control
US10635602B2 (en) * 2017-11-14 2020-04-28 International Business Machines Corporation Address translation prior to receiving a storage reference using the address to be translated
US10496437B2 (en) 2017-11-14 2019-12-03 International Business Machines Corporation Context switch by changing memory pointers
US10664181B2 (en) 2017-11-14 2020-05-26 International Business Machines Corporation Protecting in-memory configuration state registers
US20190286327A1 (en) * 2018-03-15 2019-09-19 Apple Inc. Memory Objects
JP7067270B2 (ja) * 2018-05-25 2022-05-16 富士通株式会社 情報処理装置,ロードプログラムおよびロード方法
US10895997B2 (en) * 2019-02-20 2021-01-19 Nutanix, Inc. Durable client-side caching for distributed storage
US20200259763A1 (en) * 2020-04-27 2020-08-13 Intel Corporation Intelligent resource selection for received content
DE102020207616A1 (de) * 2020-06-19 2021-12-23 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Betreiben einer Recheneinheit

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080115137A1 (en) * 2006-08-02 2008-05-15 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
CN101446928A (zh) * 2007-11-28 2009-06-03 株式会社日立制作所 虚拟机器监视器以及多处理器系统
US20100191929A1 (en) * 2004-04-15 2010-07-29 Rawson Iii Freeman Leigh System and method for reclaiming allocated memory to reduce power in a data processing system
US20110138091A1 (en) * 2009-12-03 2011-06-09 Housty Oswin E Pre-memory resource contention resolution
CN102648453A (zh) * 2009-11-24 2012-08-22 超威半导体公司 分布式多核存储器初始化

Family Cites Families (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868738A (en) 1985-08-15 1989-09-19 Lanier Business Products, Inc. Operating system independent virtual memory computer system
US5263161A (en) 1989-07-26 1993-11-16 Massachusetts Institute Of Technology Non-busy waiting resource control
JPH05120039A (ja) 1991-10-24 1993-05-18 Hitachi Ltd タスクスケジユーリング方式
US6119214A (en) 1994-04-25 2000-09-12 Apple Computer, Inc. Method for allocation of address space in a virtual memory system
US6412045B1 (en) 1995-05-23 2002-06-25 Lsi Logic Corporation Method for transferring data from a host computer to a storage media using selectable caching strategies
US5784698A (en) 1995-12-05 1998-07-21 International Business Machines Corporation Dynamic memory allocation that enalbes efficient use of buffer pool memory segments
US6161153A (en) 1998-07-30 2000-12-12 Micron Technology, Inc. Method for sharing data buffers from a buffer pool
US6437789B1 (en) 1999-02-19 2002-08-20 Evans & Sutherland Computer Corporation Multi-level cache controller
US6112045A (en) 1999-10-04 2000-08-29 Xerox Corporation Contamination-free release agent management (RAM) system
US7035989B1 (en) 2000-02-16 2006-04-25 Sun Microsystems, Inc. Adaptive memory allocation
US6985937B1 (en) 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
JP2002063069A (ja) 2000-08-21 2002-02-28 Hitachi Ltd メモリ制御装置、データ処理システム及び半導体装置
JP2002149697A (ja) 2000-11-07 2002-05-24 Mitsubishi Electric Corp 類似事例検索装置
GB0108077D0 (en) 2001-03-30 2001-05-23 British Telecomm Database management system
US7028215B2 (en) * 2002-05-03 2006-04-11 Hewlett-Packard Development Company, L.P. Hot mirroring in a computer system with redundant memory subsystems
US20040168005A1 (en) * 2003-02-21 2004-08-26 Sun Microsystems, Inc. Methods for interrupting a program and for obtaining program execution acquisition
US6950919B2 (en) * 2003-03-26 2005-09-27 Hewlett-Packard Development Company, L.P. Computer system with operating system to dynamically adjust the main memory
JP4012517B2 (ja) 2003-04-29 2007-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想計算機環境におけるロックの管理
KR100505695B1 (ko) 2003-07-12 2005-08-03 삼성전자주식회사 동적으로 할당 또는 해제되는 버퍼를 가지는 캐쉬 메모리장치, 이를 구비한 디지털 데이터 처리 시스템 및 그 방법
US7222203B2 (en) * 2003-12-08 2007-05-22 Intel Corporation Interrupt redirection for virtual partitioning
US7023445B1 (en) 2004-04-12 2006-04-04 Advanced Micro Devices, Inc. CPU and graphics unit with shared cache
US20060174431A1 (en) 2005-02-09 2006-08-10 Dr. Fresh, Inc. Electric toothbrush
JP4819369B2 (ja) 2005-02-15 2011-11-24 株式会社日立製作所 ストレージシステム
US7290094B2 (en) * 2005-05-17 2007-10-30 International Business Machines Corporation Processor, data processing system, and method for initializing a memory block to an initialization value without a cache first obtaining a data valid copy
US20070050561A1 (en) 2005-08-23 2007-03-01 Advanced Micro Devices, Inc. Method for creating critical section code using a software wrapper for proactive synchronization within a computer system
US7673126B2 (en) * 2006-09-19 2010-03-02 Intel Corporation Methods and apparatus to self-initialize a processor
US8949295B2 (en) * 2006-09-21 2015-02-03 Vmware, Inc. Cooperative memory resource management via application-level balloon
US7949794B2 (en) 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US20080235436A1 (en) * 2007-03-23 2008-09-25 Zimmer Vincent J Storage access control
JP2008250387A (ja) * 2007-03-29 2008-10-16 Toshiba Corp 情報処理装置
US8001354B2 (en) 2007-04-27 2011-08-16 International Business Machines Corporation Implementing dynamic physical memory reallocation
US8230431B2 (en) 2007-05-09 2012-07-24 Harris Technology, Llc Guaranteed core access in a multiple core processing system
US7872648B2 (en) 2007-06-14 2011-01-18 Microsoft Corporation Random-access vector graphics
US20090089788A1 (en) 2007-09-28 2009-04-02 International Business Machines Corporation System and method for handling resource contention
US8819675B2 (en) * 2007-11-28 2014-08-26 Hitachi, Ltd. Virtual machine monitor and multiprocessor system
US8645965B2 (en) * 2007-12-31 2014-02-04 Intel Corporation Supporting metered clients with manycore through time-limited partitioning
JP4474570B2 (ja) 2008-01-28 2010-06-09 エヌイーシーコンピュータテクノ株式会社 キャッシュコヒーレンシ制御方法
US20090217280A1 (en) 2008-02-21 2009-08-27 Honeywell International Inc. Shared-Resource Time Partitioning in a Multi-Core System
US8180975B2 (en) * 2008-02-26 2012-05-15 Microsoft Corporation Controlling interference in shared memory systems using parallelism-aware batch scheduling
US8006064B2 (en) 2008-05-13 2011-08-23 Intel Corporation Lock-free vector utilizing a resource allocator for assigning memory exclusively to a thread
US8099522B2 (en) * 2008-06-09 2012-01-17 International Business Machines Corporation Arrangements for I/O control in a virtualized system
US8151032B2 (en) * 2008-06-26 2012-04-03 Microsoft Corporation Direct memory access filter for virtualized operating systems
US8230155B2 (en) * 2008-06-26 2012-07-24 Microsoft Corporation Direct memory access filter for virtualized operating systems
US8135932B2 (en) 2008-07-29 2012-03-13 International Business Machines Corporation Initializing of a memory area
US8074049B2 (en) 2008-08-26 2011-12-06 Nine Technology, Llc Online backup system with global two staged deduplication without using an indexing database
JP4685911B2 (ja) 2008-10-01 2011-05-18 株式会社日立製作所 Lu設定機能を備えたストレージシステム
US8151138B2 (en) 2008-10-31 2012-04-03 Dell Products L.P. Redundant memory architecture management methods and systems
US20110238927A1 (en) 2008-11-21 2011-09-29 Hiroyuki Hatano Contents distribution device , contents distribution control method, contents distribution control program and cache control device
KR100998929B1 (ko) 2009-01-23 2010-12-09 한국과학기술원 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법
US8161260B2 (en) * 2009-02-09 2012-04-17 Oracle International Corporation Optimal memory allocation for guested virtual machine(s)
US8977805B2 (en) * 2009-03-25 2015-03-10 Apple Inc. Host-assisted compaction of memory blocks
US8688896B2 (en) 2009-05-21 2014-04-01 Panasonic Corporation High speed writing mode in memory controller, nonvolatile storage device, accessing device, nonvolatile storage system, and method and program for writing data
US8756608B2 (en) * 2009-07-01 2014-06-17 International Business Machines Corporation Method and system for performance isolation in virtualized environments
US8386745B2 (en) * 2009-07-24 2013-02-26 Advanced Micro Devices, Inc. I/O memory management unit including multilevel address translation for I/O and computation offload
JP5433349B2 (ja) 2009-08-27 2014-03-05 ルネサスエレクトロニクス株式会社 データプロセッサ
US9098456B2 (en) 2010-01-13 2015-08-04 International Business Machines Corporation System and method for reducing latency time with cloud services
US8341269B2 (en) 2010-03-19 2012-12-25 International Business Machines Corporation Configuring cloud resources
US8589650B2 (en) * 2010-05-17 2013-11-19 Texas Instruments Incorporated Dynamically configurable memory system
US8510739B2 (en) 2010-09-16 2013-08-13 International Business Machines Corporation Shared request grouping in a computing system
US8977819B2 (en) 2010-09-21 2015-03-10 Texas Instruments Incorporated Prefetch stream filter with FIFO allocation and stream direction prediction
US8418185B2 (en) 2010-10-19 2013-04-09 International Business Machines Corporation Memory maximization in a high input/output virtual machine environment
US9223624B2 (en) 2010-10-20 2015-12-29 International Business Machines Corporation Processing requests in a cloud computing environment
US8554747B2 (en) 2010-11-11 2013-10-08 International Business Machines Corporation Active memory expansion in a database environment to query needed/uneeded results
US8738962B2 (en) * 2010-11-17 2014-05-27 International Business Machines Corporation Memory mirroring with memory compression
US8495267B2 (en) * 2010-11-24 2013-07-23 International Business Machines Corporation Managing shared computer memory using multiple interrupts
EP2466466B1 (de) * 2010-12-09 2013-10-16 Siemens Aktiengesellschaft Verfahren zur Fehlererkennung bei der Ausführung eines Echtzeit-Betriebssystems
GB2499765B (en) 2010-12-09 2014-02-19 Ibm Multicore system and method of reading the core data
EP2667309A1 (en) * 2011-01-17 2013-11-27 Fujitsu Limited Memory management method, memory management device and memory management circuit
KR20120094778A (ko) 2011-02-17 2012-08-27 삼성전자주식회사 캐시 레이턴시 저감을 위한 캐시 메모리 제어방법 및 캐시 메모리 시스템
US9038176B2 (en) * 2011-03-31 2015-05-19 Mcafee, Inc. System and method for below-operating system trapping and securing loading of code into memory
US8661175B2 (en) 2011-06-01 2014-02-25 Lsi Corporation Multiprocessor synchronization using region locks
GB2493191A (en) 2011-07-28 2013-01-30 St Microelectronics Res & Dev Cache arrangement with data pre-fetching requests having different quality of services
US8886862B2 (en) * 2011-08-11 2014-11-11 Mellanox Technologies Ltd. Virtualization of interrupts
US8645811B2 (en) * 2011-10-27 2014-02-04 Dell Products L.P. System and method for selective error checking
US9235443B2 (en) 2011-11-30 2016-01-12 International Business Machines Corporation Allocation enforcement in a multi-tenant cache mechanism
JP5784482B2 (ja) * 2011-12-28 2015-09-24 株式会社東芝 情報処理装置および通信制御方法
US8966170B2 (en) 2012-01-31 2015-02-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Elastic cache of redundant cache data
US9665233B2 (en) 2012-02-16 2017-05-30 The University Utah Research Foundation Visualization of software memory usage
US9852054B2 (en) 2012-04-30 2017-12-26 Vmware, Inc. Elastic caching for Java virtual machines
CN102750178B (zh) * 2012-06-08 2015-04-29 华为技术有限公司 通信设备硬件资源的虚拟化管理方法及相关装置
US9164804B2 (en) 2012-06-20 2015-10-20 Memory Technologies Llc Virtual memory module
US9183054B2 (en) * 2012-06-30 2015-11-10 International Business Machines Corporation Maintaining hardware resource bandwidth quality-of-service via hardware counter
US8963933B2 (en) * 2012-07-23 2015-02-24 Advanced Micro Devices, Inc. Method for urgency-based preemption of a process
US9086957B2 (en) 2012-08-02 2015-07-21 International Business Machines Corporation Requesting a memory space by a memory controller
US9753846B2 (en) * 2012-09-06 2017-09-05 Red Hat, Inc. Adjusting the operating memory used by a virtual machine during runtime
US9274839B2 (en) * 2012-09-27 2016-03-01 Intel Corporation Techniques for dynamic physical memory partitioning
US9015523B2 (en) * 2012-12-20 2015-04-21 Intel Corporation Memory allocation for virtual machines using memory map
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9229854B1 (en) * 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
US9465807B2 (en) 2013-10-18 2016-10-11 International Business Machines Corporation Management of file cache
US9563588B1 (en) * 2014-01-29 2017-02-07 Google Inc. OS bypass inter-processor interrupt delivery mechanism
US9710381B2 (en) 2014-06-18 2017-07-18 International Business Machines Corporation Method and apparatus for cache memory data processing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100191929A1 (en) * 2004-04-15 2010-07-29 Rawson Iii Freeman Leigh System and method for reclaiming allocated memory to reduce power in a data processing system
US20080115137A1 (en) * 2006-08-02 2008-05-15 International Business Machines Corporation Systems and methods for providing collision detection in a memory system
CN101446928A (zh) * 2007-11-28 2009-06-03 株式会社日立制作所 虚拟机器监视器以及多处理器系统
CN102648453A (zh) * 2009-11-24 2012-08-22 超威半导体公司 分布式多核存储器初始化
US20110138091A1 (en) * 2009-12-03 2011-06-09 Housty Oswin E Pre-memory resource contention resolution

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106257403A (zh) * 2015-06-19 2016-12-28 Hgst荷兰公司 用于关于数据传送的单通熵检测的装置和方法
CN106257403B (zh) * 2015-06-19 2020-11-03 Hgst荷兰公司 用于关于数据传送的单通熵检测的装置和方法
CN107533602A (zh) * 2016-04-22 2018-01-02 慧与发展有限责任合伙企业 利用资源控制器的用于写时复制的存储器控制器的配置
CN107533602B (zh) * 2016-04-22 2021-01-12 慧与发展有限责任合伙企业 计算设备及其方法,以及计算系统
US11734430B2 (en) 2016-04-22 2023-08-22 Hewlett Packard Enterprise Development Lp Configuration of a memory controller for copy-on-write with a resource controller

Also Published As

Publication number Publication date
US20150356004A1 (en) 2015-12-10
US10275348B2 (en) 2019-04-30
CN104346304B (zh) 2018-02-02
US20150033002A1 (en) 2015-01-29
US10229043B2 (en) 2019-03-12

Similar Documents

Publication Publication Date Title
CN104346304A (zh) 使用存储器控制器来请求资源的方法和系统
US9086957B2 (en) Requesting a memory space by a memory controller
US8327086B2 (en) Managing migration of a shared memory logical partition from a source system to a target system
CN102023932B (zh) 为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持
WO2018137529A1 (zh) 一种数据传输的方法、装置、设备和系统
US7844746B2 (en) Accessing an effective address and determining whether the effective address is associated with remotely coupled I/O adapters
JP5016028B2 (ja) メモリ・マイグレーション中のdma動作を停止させるコンピュータ実装方法、装置、及びコンピュータ・プログラム
US8201167B2 (en) On-demand allocation of virtual asynchronous services interfaces
US7873879B2 (en) Mechanism to perform debugging of global shared memory (GSM) operations
US20090198762A1 (en) Mechanism to Provide Reliability Through Packet Drop Detection
US20090164739A1 (en) Method,system and apparatus for handling events for partitions in a socket with sub-socket partitioning
US8239879B2 (en) Notification by task of completion of GSM operations at target node
US20100100892A1 (en) Managing hosted virtualized operating system environments
US8255913B2 (en) Notification to task of completion of GSM operations by initiator node
US9792209B2 (en) Method and apparatus for cache memory data processing
US20110061053A1 (en) Managing preemption in a parallel computing system
CN105556473A (zh) 一种i/o任务处理的方法、设备和系统
US7835373B2 (en) Method and apparatus for buffer linking in bridged networks
US7941568B2 (en) Mapping a virtual address to PCI bus address
US7266631B2 (en) Isolation of input/output adapter traffic class/virtual channel and input/output ordering domains
US8139595B2 (en) Packet transfer in a virtual partitioned environment
US10936219B2 (en) Controller-based inter-device notational data movement system
US10437471B2 (en) Method and system for allocating and managing storage in a raid storage system
JP2009282651A (ja) 仮想計算機システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant