CA2137488A1 - Coexecuting Method and Means for Performing Parallel Processing in Conventional Types of Data Processing Systems - Google Patents

Coexecuting Method and Means for Performing Parallel Processing in Conventional Types of Data Processing Systems

Info

Publication number
CA2137488A1
CA2137488A1 CA2137488A CA2137488A CA2137488A1 CA 2137488 A1 CA2137488 A1 CA 2137488A1 CA 2137488 A CA2137488 A CA 2137488A CA 2137488 A CA2137488 A CA 2137488A CA 2137488 A1 CA2137488 A1 CA 2137488A1
Authority
CA
Canada
Prior art keywords
coexecutor
host
functions
cps
offloaded
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
CA2137488A
Other languages
French (fr)
Other versions
CA2137488C (en
Inventor
Richard I. Baum
Glen A. Brent
Hatem M. Ghafir
Balakrishna R. Iyer
Inderpal S. Narang
Gururaj S. Rao
Casper A. Scalzi
Satya P. Sharma
Bhaskar Sinha
Lee H. Wilson
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 CA2137488A1 publication Critical patent/CA2137488A1/en
Application granted granted Critical
Publication of CA2137488C publication Critical patent/CA2137488C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • 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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Abstract

A coexecutor for executing functions offloaded from central processors (CPs) in a data processing system, as requested by one or more executing controlprograms, which include a host operating system (host OS), and subsystem programs and applications executing under the host OS. The offloaded functions are embodied in code modules. Code modules execute in the coexecutor in parallel with non-offloaded functions being executed by the CPs. Thus, the CPs do not need to execute functions which can be executed by the coexecutor. CP requests to the coexecutor specify the code modules which are accessed by the coexecutor from host shared storage under the same constraints and access limitations as the control programs. The coexecutor may emulate host dynamic address translation, and may use a provided host storage key in accessing host storage. The restricted access operating state for the coexecutor maintains data integrity.
Coexecutors can be of the same architecture or of a totally differentarchitecture from the CPs to provide an efficient processing environment for theoffloaded functions. The coexecutor interfaces host software which provides therequests to the coexecutor. Offloaded modules, once accessed by the coexecutor,may be cached in coexecutor local storage for use by future requests to allow subsequent invocations to proceed without waiting to again load the same module.
CA002137488A 1994-02-18 1994-12-07 Coexecuting method and means for performing parallel processing in conventional types of data processing systems Expired - Fee Related CA2137488C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US19904194A 1994-02-18 1994-02-18
US199,041 1994-02-18

Publications (2)

Publication Number Publication Date
CA2137488A1 true CA2137488A1 (en) 1995-08-19
CA2137488C CA2137488C (en) 1998-09-29

Family

ID=22735958

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002137488A Expired - Fee Related CA2137488C (en) 1994-02-18 1994-12-07 Coexecuting method and means for performing parallel processing in conventional types of data processing systems

Country Status (4)

Country Link
US (1) US5655146A (en)
EP (1) EP0668560A3 (en)
JP (1) JP2633488B2 (en)
CA (1) CA2137488C (en)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745781A (en) * 1995-12-26 1998-04-28 International Business Machines Corporation Memoryless communications adapter including queueing and matching primitives for scalable distributed parallel computer systems
US5706514A (en) * 1996-03-04 1998-01-06 Compaq Computer Corporation Distributed execution of mode mismatched commands in multiprocessor computer systems
US5987590A (en) * 1996-04-02 1999-11-16 Texas Instruments Incorporated PC circuits, systems and methods
US6065046A (en) * 1997-07-29 2000-05-16 Catharon Productions, Inc. Computerized system and associated method of optimally controlled storage and transfer of computer programs on a computer network
US6243735B1 (en) * 1997-09-01 2001-06-05 Matsushita Electric Industrial Co., Ltd. Microcontroller, data processing system and task switching control method
US5991797A (en) * 1997-12-23 1999-11-23 Intel Corporation Method for directing I/O transactions between an I/O device and a memory
US6289432B1 (en) 1998-03-25 2001-09-11 International Business Machines Corporation Sharing segments of storage by enabling the sharing of page tables
US6360282B1 (en) 1998-03-25 2002-03-19 Network Appliance, Inc. Protected control of devices by user applications in multiprogramming environments
US6401133B1 (en) * 1998-06-24 2002-06-04 Unisys Corporation System for high speed continuous file transfer processing of data files
US6343324B1 (en) * 1999-09-13 2002-01-29 International Business Machines Corporation Method and system for controlling access share storage devices in a network environment by configuring host-to-volume mapping data structures in the controller memory for granting and denying access to the devices
WO2001086432A2 (en) * 2000-05-11 2001-11-15 Netoctave, Inc. Cryptographic data processing systems, computer program products, and methods of operating same, using parallel execution units
US6941351B2 (en) * 2000-07-11 2005-09-06 Microsoft Corporation Application program caching
US6591358B2 (en) * 2001-01-26 2003-07-08 Syed Kamal H. Jaffrey Computer system with operating system functions distributed among plural microcontrollers for managing device resources and CPU
US7251752B2 (en) 2001-10-01 2007-07-31 Adams Phillip M Computerized product improvement apparatus and method
US8189591B2 (en) 2001-10-30 2012-05-29 Exar Corporation Methods, systems and computer program products for packet ordering for parallel packet transform processing
US6990662B2 (en) * 2001-10-31 2006-01-24 Hewlett-Packard Development Company, L.P. Method and system for offloading execution and resources for resource-constrained networked devices
US7133894B2 (en) * 2002-03-12 2006-11-07 International Business Machines Corporation Method, apparatus, and program for synchronous remote builds
EP1376367A2 (en) * 2002-06-26 2004-01-02 STMicroelectronics S.A. Verification of integrity of software code executed on an embedded processor
US7299266B2 (en) * 2002-09-05 2007-11-20 International Business Machines Corporation Memory management offload for RDMA enabled network adapters
JP4542308B2 (en) * 2002-12-16 2010-09-15 株式会社ソニー・コンピュータエンタテインメント Signal processing device and information processing device
US7073002B2 (en) * 2003-03-13 2006-07-04 International Business Machines Corporation Apparatus and method for controlling resource transfers using locks in a logically partitioned computer system
US7085862B2 (en) * 2003-03-13 2006-08-01 International Business Machines Corporation Apparatus and method for controlling resource transfers in a logically partitioned computer system by placing a resource in a power on reset state when transferring the resource to a logical partition
US7039820B2 (en) 2003-04-24 2006-05-02 International Business Machines Corporation Method for detecting and powering off unused I/O slots in a computer system
US8069192B2 (en) * 2004-03-22 2011-11-29 Microsoft Corporation Computing device with relatively limited storage space and operating / file system thereof
US7647358B2 (en) * 2004-03-22 2010-01-12 Microsoft Corporation Computing device with relatively limited storage space and operating/file system thereof
WO2006024957A2 (en) * 2004-07-01 2006-03-09 Harman Becker Automotive Systems Gmbh Computer architecture for a multimedia system used in a vehicle
EP1615141B1 (en) 2004-07-01 2018-03-07 Harman Becker Automotive Systems GmbH A computing architecture for a mobile multimedia system used in a vehicle
GB0516454D0 (en) * 2005-08-10 2005-09-14 Symbian Software Ltd Coprocessor support in a computing device
US20070185912A1 (en) * 2006-02-08 2007-08-09 International Business Machines Corporation Off-loading I/O and computationally intensive operations to secondary systems
US20080189715A1 (en) * 2006-03-14 2008-08-07 International Business Machines Corporation Controlling resource transfers in a logically partitioned computer system
US8286196B2 (en) * 2007-05-03 2012-10-09 Apple Inc. Parallel runtime execution on multiple processors
US8276164B2 (en) 2007-05-03 2012-09-25 Apple Inc. Data parallel computing on multiple processors
US11836506B2 (en) 2007-04-11 2023-12-05 Apple Inc. Parallel runtime execution on multiple processors
AU2008239696B2 (en) 2007-04-11 2011-09-08 Apple Inc. Data parallel computing on multiple processors
US8341611B2 (en) 2007-04-11 2012-12-25 Apple Inc. Application interface on multiple processors
JP2008299648A (en) 2007-05-31 2008-12-11 Toshiba Corp Program and information processor
WO2010020828A1 (en) * 2008-08-18 2010-02-25 Telefonaktiebolaget L M Ericsson (Publ) Data sharing in chip multi-processor systems
US8359453B2 (en) 2010-09-13 2013-01-22 International Business Machines Corporation Real address accessing in a coprocessor executing on behalf of an unprivileged process
US20120096292A1 (en) * 2010-10-15 2012-04-19 Mosaid Technologies Incorporated Method, system and apparatus for multi-level processing
US9058275B2 (en) 2011-06-10 2015-06-16 International Business Machines Corporation Data returned responsive to executing a start subchannel instruction
US9021180B2 (en) 2011-06-10 2015-04-28 International Business Machines Corporation Clearing blocks of storage class memory
US9116634B2 (en) 2011-06-10 2015-08-25 International Business Machines Corporation Configure storage class memory command
US9021226B2 (en) 2011-06-10 2015-04-28 International Business Machines Corporation Moving blocks of data between main memory and storage class memory
US9423983B2 (en) 2012-01-19 2016-08-23 Syncsort Incorporated Intelligent storage controller
JP6024296B2 (en) * 2012-08-30 2016-11-16 富士通株式会社 Information processing apparatus, copy control program, and copy control method

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3573741A (en) * 1968-07-11 1971-04-06 Ibm Control unit for input/output devices
US3576544A (en) * 1968-10-18 1971-04-27 Ibm Storage protection system
US3725864A (en) * 1971-03-03 1973-04-03 Ibm Input/output control
US3713107A (en) * 1972-04-03 1973-01-23 Ncr Firmware sort processor system
US3839706A (en) * 1973-07-02 1974-10-01 Ibm Input/output channel relocation storage protect mechanism
US4042914A (en) * 1976-05-17 1977-08-16 Honeywell Information Systems Inc. Microprogrammed control of foreign processor control functions
US4071890A (en) * 1976-11-29 1978-01-31 Data General Corporation CPU-Synchronous parallel data processor apparatus
US4310879A (en) * 1979-03-08 1982-01-12 Pandeya Arun K Parallel processor having central processor memory extension
US4547849A (en) * 1981-12-09 1985-10-15 Glenn Louie Interface between a microprocessor and a coprocessor
US4914578A (en) * 1983-04-18 1990-04-03 Motorola, Inc. Method and apparatus for interrupting a coprocessor
JPS62151971A (en) * 1985-12-25 1987-07-06 Nec Corp Microprocessor
US4787026A (en) * 1986-01-17 1988-11-22 International Business Machines Corporation Method to manage coprocessor in a virtual memory virtual machine data processing system
JPS62214464A (en) * 1986-03-17 1987-09-21 Hitachi Ltd Coprocessor coupling system
US5146575A (en) * 1986-11-05 1992-09-08 International Business Machines Corp. Implementing privilege on microprocessor systems for use in software asset protection
EP0267613B1 (en) * 1986-11-12 1995-03-01 Nec Corporation Micro processor capable of being connected with coprocessor
US4943915A (en) * 1987-09-29 1990-07-24 Digital Equipment Corporation Apparatus and method for synchronization of a coprocessor unit in a pipelined central processing unit
US5237668A (en) * 1989-10-20 1993-08-17 International Business Machines Corporation Process using virtual addressing in a non-privileged instruction to control the copying of a page of data in or between multiple media
US5210870A (en) * 1990-03-27 1993-05-11 International Business Machines Database sort and merge apparatus with multiple memory arrays having alternating access
JP2884831B2 (en) * 1991-07-03 1999-04-19 株式会社日立製作所 Processing equipment

Also Published As

Publication number Publication date
US5655146A (en) 1997-08-05
JP2633488B2 (en) 1997-07-23
JPH07239783A (en) 1995-09-12
EP0668560A2 (en) 1995-08-23
CA2137488C (en) 1998-09-29
EP0668560A3 (en) 1996-11-06

Similar Documents

Publication Publication Date Title
CA2137488A1 (en) Coexecuting Method and Means for Performing Parallel Processing in Conventional Types of Data Processing Systems
US5842226A (en) Virtual memory management for a microkernel system with multiple operating systems
US6308247B1 (en) Page table entry management method and apparatus for a microkernel data processing system
JP3074178B2 (en) Program module loading and execution method
US4513368A (en) Digital data processing system having object-based logical memory addressing and self-structuring modular memory
US7930328B2 (en) Apparatus, system, and method for file system sharing
US20020029308A1 (en) Method for emulating hardware features of a foreign architecture in a host operating system environment
JPH01200467A (en) Apparatus and method for data processing system having equal relationship between a plurality of central processors
CA2257309A1 (en) Internet file system
CA2245106A1 (en) Method and system for input/output control in a multiprocessor system utilizing simultaneous variable-width bus access
CA2012420C (en) Extended memory address control system
EP1271327A3 (en) System protection map
US20020083271A1 (en) Cache management using a buffer for invalidation requests
CA2011807A1 (en) Data base processing system using multiprocessor system
CA2335307A1 (en) Split directory-based cache coherency technique for a multi-processor computer system
CA2264232A1 (en) Systems and methods for providing dynamic data referencing in a generic data exchange environment
CA2009529A1 (en) Servicing interrupt requests in a data processing system without using the services of an operating system
US5603014A (en) Protected mode simulation of a real mode interupt based programming interface in a computer system
EP0348053B1 (en) Controlling the initiation of logical systems in a data processing system with logical processor facility
KR0175983B1 (en) Data processing system having demand based write through cache with enforced ordering
Bennett et al. Predictable and efficient virtual addressing for safety-critical real-time systems
US5659750A (en) Apparatus for context switching of input/output devices in responses to commands from unprivileged application programs
WO2001016760A1 (en) Switchable shared-memory cluster
Dean et al. Data Movement in Kernelized Systems.
JPH0895757A (en) Method and apparatus for loading of master server program for microkernel data processing system

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20141208

MKLA Lapsed

Effective date: 20141208