CA2208297A1 - Method and computer program product for reducing inter-buffer data transfers between separate processing components - Google Patents

Method and computer program product for reducing inter-buffer data transfers between separate processing components

Info

Publication number
CA2208297A1
CA2208297A1 CA002208297A CA2208297A CA2208297A1 CA 2208297 A1 CA2208297 A1 CA 2208297A1 CA 002208297 A CA002208297 A CA 002208297A CA 2208297 A CA2208297 A CA 2208297A CA 2208297 A1 CA2208297 A1 CA 2208297A1
Authority
CA
Canada
Prior art keywords
buffer
drivers
data
chained
computer program
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
CA002208297A
Other languages
French (fr)
Other versions
CA2208297C (en
Inventor
George H. J. Shaw
Bryan A. Woodruff
Thomas J. O'rourke
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CA2208297A1 publication Critical patent/CA2208297A1/en
Application granted granted Critical
Publication of CA2208297C publication Critical patent/CA2208297C/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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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

Abstract

A method and computer program product for overcoming the inefficiencies associated with inter-buffer data transfers between separate processing components such as kernel mode drivers that are chained together. Provided is a standard mechanism for allocating and managing data buffers needed for processing data in a system, wherein multiple drivers are chained together using a standardized connection method in the connection pin instances. Drivers having different buffer requirements and capabilities may be queried and matched for easy data transition between the chained drivers requiring the least number of buffers and, hence the least expensive yet most efficient inter-buffer data transfer. Examples of buffer requirements include previous frame storage for adaptive processing, byte alignment, frame size, outstanding frames allowed, etc. The buffer requirements of an input connection pin instance may be queried by an application initializing the chained drivers. When a buffer is needed, a buffer allocator will be associated with the input pin instance, otherwise a driver will process the data in the previous existing buffer.
CA002208297A 1997-04-04 1997-06-19 Method and computer program product for reducing inter-buffer data transfers between separate processing components Expired - Fee Related CA2208297C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/825,957 1997-04-04
US08/825,957 US6209041B1 (en) 1997-04-04 1997-04-04 Method and computer program product for reducing inter-buffer data transfers between separate processing components

Publications (2)

Publication Number Publication Date
CA2208297A1 true CA2208297A1 (en) 1998-10-04
CA2208297C CA2208297C (en) 2005-05-24

Family

ID=25245322

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002208297A Expired - Fee Related CA2208297C (en) 1997-04-04 1997-06-19 Method and computer program product for reducing inter-buffer data transfers between separate processing components

Country Status (5)

Country Link
US (2) US6209041B1 (en)
EP (2) EP1619581A1 (en)
JP (2) JP3929551B2 (en)
CA (1) CA2208297C (en)
DE (1) DE69736586T2 (en)

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7042526B1 (en) * 1998-04-08 2006-05-09 Microsoft Corporation Worldwide television tuning system with country code based tuning
US6340997B1 (en) * 1998-04-08 2002-01-22 Microsoft Corporation Worldwide television tuning system with object-based tuning control modules
US8577205B2 (en) * 1998-07-30 2013-11-05 Tivo Inc. Digital video recording system
US8380041B2 (en) * 1998-07-30 2013-02-19 Tivo Inc. Transportable digital video recorder system
US7558472B2 (en) * 2000-08-22 2009-07-07 Tivo Inc. Multimedia signal processing system
US6233389B1 (en) * 1998-07-30 2001-05-15 Tivo, Inc. Multimedia time warping system
US7047554B1 (en) * 1998-12-09 2006-05-16 Intel Corporation System and method for integrating and controlling audio/video devices
CN1265386C (en) 1999-03-30 2006-07-19 提维股份有限公司 System for automatic playback position correction after fast forward or reverse
US7007096B1 (en) 1999-05-12 2006-02-28 Microsoft Corporation Efficient splitting and mixing of streaming-data frames for processing through multiple processing modules
US6658477B1 (en) * 1999-05-12 2003-12-02 Microsoft Corporation Improving the control of streaming data through multiple processing modules
CN100379273C (en) 1999-09-20 2008-04-02 提维股份有限公司 Closed caption tagging system
US6594773B1 (en) * 1999-11-12 2003-07-15 Microsoft Corporation Adaptive control of streaming data in a graph
US7577958B1 (en) * 1999-12-09 2009-08-18 Nortel Networks Limited Expediting an operation in a computer system
CA2397740C (en) 2000-01-14 2015-06-30 Catavault Method and system for secure registration, storage, management and linkage of personal authentication credentials data over a network
US7035916B1 (en) * 2000-02-16 2006-04-25 Microsoft Corporation Coupling a filter graph space to a network driver space
US6836888B1 (en) * 2000-03-17 2004-12-28 Lucent Technologies Inc. System for reverse sandboxing
US6609155B1 (en) * 2000-05-25 2003-08-19 International Business Machines Corporation Method and apparatus for providing relationships in simple network management protocol management information base
US7185082B1 (en) * 2000-08-09 2007-02-27 Microsoft Corporation Fast dynamic measurement of connection bandwidth using at least a pair of non-compressible packets having measurable characteristics
US7266613B1 (en) * 2000-08-09 2007-09-04 Microsoft Corporation Fast dynamic measurement of bandwidth in a TCP network environment
US7103677B2 (en) 2000-12-06 2006-09-05 Microsoft Corporation Methods and systems for efficiently processing compressed and uncompressed media content
US6834390B2 (en) * 2000-12-06 2004-12-21 Microsoft Corporation System and related interfaces supporting the processing of media content
US7287226B2 (en) * 2000-12-06 2007-10-23 Microsoft Corporation Methods and systems for effecting video transitions represented by bitmaps
US6959438B2 (en) * 2000-12-06 2005-10-25 Microsoft Corporation Interface and related methods for dynamically generating a filter graph in a development system
US6912717B2 (en) * 2000-12-06 2005-06-28 Microsoft Corporation Methods and systems for implementing dynamic properties on objects that support only static properties
US6983466B2 (en) * 2000-12-06 2006-01-03 Microsoft Corporation Multimedia project processing systems and multimedia project processing matrix systems
US6882891B2 (en) 2000-12-06 2005-04-19 Microsoft Corporation Methods and systems for mixing digital audio signals
US6961943B2 (en) * 2000-12-06 2005-11-01 Microsoft Corporation Multimedia processing system parsing multimedia content from a single source to minimize instances of source files
US7114162B2 (en) 2000-12-06 2006-09-26 Microsoft Corporation System and methods for generating and managing filter strings in a filter graph
US6768499B2 (en) * 2000-12-06 2004-07-27 Microsoft Corporation Methods and systems for processing media content
US6954581B2 (en) * 2000-12-06 2005-10-11 Microsoft Corporation Methods and systems for managing multiple inputs and methods and systems for processing media content
US6774919B2 (en) * 2000-12-06 2004-08-10 Microsoft Corporation Interface and related methods for reducing source accesses in a development system
US7114161B2 (en) 2000-12-06 2006-09-26 Microsoft Corporation System and related methods for reducing memory requirements of a media processing system
US7447754B2 (en) 2000-12-06 2008-11-04 Microsoft Corporation Methods and systems for processing multi-media editing projects
US20030217184A1 (en) * 2000-12-30 2003-11-20 Govindan Nair Method and apparatus for allocating buffers shared among protocol layers in a protocol stack
US20070230921A1 (en) * 2001-04-05 2007-10-04 Barton James M Multimedia time warping system
US6792449B2 (en) 2001-06-28 2004-09-14 Microsoft Corporation Startup methods and apparatuses for use in streaming content
US7571445B2 (en) * 2001-11-29 2009-08-04 Dell Products L.P. System and method for dynamic device driver support in an open source operating system
US7725557B2 (en) * 2002-06-24 2010-05-25 Microsoft Corporation Client-side caching of streaming media content
US7024672B2 (en) * 2002-06-26 2006-04-04 Microsoft Corporation Process-mode independent driver model
US7448049B1 (en) * 2002-10-18 2008-11-04 Crossroads Systems, Inc. System and method of supporting kernel functionality
US7650421B2 (en) * 2002-12-30 2010-01-19 Microsoft Corporation Adaptable accelerated content streaming
CN1245685C (en) * 2002-12-31 2006-03-15 上海科泰世纪科技有限公司 Drive method based on structure operation system dynamic equipment
AU2004202425A1 (en) * 2003-06-04 2004-12-23 Panasonic Corporation Program replacing method
US20040268400A1 (en) * 2003-06-26 2004-12-30 Microsoft Corporation Quick starting video content
US7441020B2 (en) * 2003-06-27 2008-10-21 Microsoft Corporation Media plug-in registration and dynamic loading
US7054774B2 (en) 2003-06-27 2006-05-30 Microsoft Corporation Midstream determination of varying bandwidth availability
US7391717B2 (en) * 2003-06-30 2008-06-24 Microsoft Corporation Streaming of variable bit rate multimedia content
US7613767B2 (en) * 2003-07-11 2009-11-03 Microsoft Corporation Resolving a distributed topology to stream data
US20050065969A1 (en) * 2003-08-29 2005-03-24 Shiby Thomas Expressing sequence matching and alignment using SQL table functions
US7712108B2 (en) * 2003-12-08 2010-05-04 Microsoft Corporation Media processing methods, systems and application program interfaces
US7733962B2 (en) * 2003-12-08 2010-06-08 Microsoft Corporation Reconstructed frame caching
US7900140B2 (en) * 2003-12-08 2011-03-01 Microsoft Corporation Media processing methods, systems and application program interfaces
US7735096B2 (en) * 2003-12-11 2010-06-08 Microsoft Corporation Destination application program interfaces
US9323571B2 (en) * 2004-02-06 2016-04-26 Intel Corporation Methods for reducing energy consumption of buffered applications using simultaneous multi-threading processor
US20050185718A1 (en) * 2004-02-09 2005-08-25 Microsoft Corporation Pipeline quality control
US7934159B1 (en) 2004-02-19 2011-04-26 Microsoft Corporation Media timeline
US7941739B1 (en) 2004-02-19 2011-05-10 Microsoft Corporation Timeline source
US7664882B2 (en) * 2004-02-21 2010-02-16 Microsoft Corporation System and method for accessing multimedia content
US7577940B2 (en) * 2004-03-08 2009-08-18 Microsoft Corporation Managing topology changes in media applications
US7609653B2 (en) * 2004-03-08 2009-10-27 Microsoft Corporation Resolving partial media topologies
US7669206B2 (en) 2004-04-20 2010-02-23 Microsoft Corporation Dynamic redirection of streaming media between computing devices
JP2005317115A (en) 2004-04-28 2005-11-10 Sony Corp Information processor, information processing method, and program
US7162533B2 (en) * 2004-04-30 2007-01-09 Microsoft Corporation Session description message extensions
US7590750B2 (en) * 2004-09-10 2009-09-15 Microsoft Corporation Systems and methods for multimedia remoting over terminal server connections
US7640552B2 (en) * 2004-10-29 2009-12-29 Microsoft Corporation Multimedia filter resilience
US9967534B1 (en) 2004-11-19 2018-05-08 Tivo Solutions Inc. Digital video recorder video editing system
US7593930B2 (en) * 2004-12-14 2009-09-22 Sap Ag Fast channel architecture
US7600217B2 (en) * 2004-12-14 2009-10-06 Sap Ag Socket-like communication API for Java
US7580915B2 (en) * 2004-12-14 2009-08-25 Sap Ag Socket-like communication API for C
US7672949B2 (en) * 2004-12-28 2010-03-02 Sap Ag Connection manager having a common dispatcher for heterogeneous software suites
US8370448B2 (en) * 2004-12-28 2013-02-05 Sap Ag API for worker node retrieval of session request
US7971001B2 (en) 2004-12-28 2011-06-28 Sap Ag Least recently used eviction implementation
US7539821B2 (en) 2004-12-28 2009-05-26 Sap Ag First in first out eviction implementation
US7933947B2 (en) * 2004-12-28 2011-04-26 Sap Ag Connection manager that supports failover protection
US7694065B2 (en) 2004-12-28 2010-04-06 Sap Ag Distributed cache architecture
US20060143256A1 (en) 2004-12-28 2006-06-29 Galin Galchev Cache region concept
US8204931B2 (en) 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network
US8140678B2 (en) * 2004-12-28 2012-03-20 Sap Ag Failover protection from a failed worker node in a shared memory system
US7500133B2 (en) * 2004-12-28 2009-03-03 Sap Ag Connection manager for handling message oriented protocol-based requests
KR100645537B1 (en) * 2005-02-07 2006-11-14 삼성전자주식회사 Method of dynamic Queue management for the stable packet forwarding and Element of network thereof
US8589562B2 (en) 2005-04-29 2013-11-19 Sap Ag Flexible failover configuration
US7748009B2 (en) * 2005-05-16 2010-06-29 Microsoft Corporation Use of a precursor to select cached buffer
US7689660B2 (en) * 2005-06-09 2010-03-30 Sap Ag Application server architecture
US7966412B2 (en) 2005-07-19 2011-06-21 Sap Ag System and method for a pluggable protocol handler
KR100764621B1 (en) 2005-10-21 2007-10-08 엔에이치엔(주) Method and system for pooling data
US8707323B2 (en) * 2005-12-30 2014-04-22 Sap Ag Load balancing algorithm for servicing client requests
US20070156907A1 (en) 2005-12-30 2007-07-05 Galin Galchev Session handling based on shared session information
US8479283B2 (en) * 2006-11-28 2013-07-02 Microsoft Corporation Generating security validation code automatically
US8484611B2 (en) * 2007-10-15 2013-07-09 International Business Machines Corporation Method and system for simplified assembly of information processing applications
US8312426B2 (en) 2008-01-07 2012-11-13 International Business Machines Corporation Method and system for simplified service composition in web environment
US8245122B2 (en) * 2008-01-08 2012-08-14 International Business Machines Corporation Method and system for modeling user requests, applications and components used in dynamic application assembly
US8239828B2 (en) * 2008-01-08 2012-08-07 International Business Machines Corporation Method of recovering from software failures using replanning
US8640149B2 (en) 2008-03-26 2014-01-28 International Business Machines Corporation Method and apparatus for dynamic web service composition and invocation
US8949140B2 (en) 2008-04-21 2015-02-03 International Business Machines Corporation Method and system for dynamic software reconfiguration triggered by component- or system- initiated events
US8898624B2 (en) * 2008-05-05 2014-11-25 International Business Machines Corporation Method and apparatus for simplified assembly of parametric information processing applications
US8374712B2 (en) * 2008-12-31 2013-02-12 Microsoft Corporation Gapless audio playback
US20120179793A1 (en) * 2009-06-29 2012-07-12 Nokia Corporation Resource Allocation
WO2011121168A1 (en) * 2010-03-31 2011-10-06 Nokia Corporation System and method for allocating buffers
US8448113B2 (en) * 2010-04-27 2013-05-21 International Business Machines Corporation Efficiently applying a single timing assertion to multiple timing points in a circuit using creating a deffinition
US9286032B2 (en) 2013-03-15 2016-03-15 International Business Machines Corporation Automated software composition
FR3034220B1 (en) * 2015-03-27 2017-03-10 Damien Plisson IMPROVED MULTIMEDIA FLOW TRANSMISSION
US10963172B2 (en) * 2018-08-09 2021-03-30 Apple Inc. Systems and methods for providing a back pressure free interconnect
US10922249B2 (en) * 2019-01-15 2021-02-16 Microsoft Technology Licensing, Llc Input/output control code filter

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1244555A (en) * 1985-06-17 1988-11-08 Walter H. Schwane Process transparent multi storage mode data transfer and buffer control
US5056003A (en) * 1985-06-17 1991-10-08 International Business Machines Corporation Distributed data management mechanism
US5386566A (en) * 1991-03-20 1995-01-31 Hitachi, Ltd. Inter-processor communication method for transmitting data and processor dependent information predetermined for a receiving process of another processor
JP2521016B2 (en) * 1991-12-31 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション Multimedia data processing system
KR940007680A (en) * 1992-09-30 1994-04-27 로버트 에이. 에셀만 How and to reduce memory allocation requirements
AU4219693A (en) * 1992-09-30 1994-04-14 Apple Computer, Inc. Inter-task buffer and connections
US5384890A (en) * 1992-09-30 1995-01-24 Apple Computer, Inc. Method and apparatus for providing multiple clients simultaneous access to a sound data stream
US5652913A (en) * 1992-10-13 1997-07-29 Microsoft Corporation System for providing intercommunication of I/O access factors stored in a shared data structure, accessed and maintained by both file system and device driver
DE69403915T2 (en) * 1993-09-13 1998-01-15 Taligent Inc OBJECT-ORIENTED VIDEO SYSTEM
EP0701205B1 (en) * 1994-07-22 2003-05-14 Sun Microsystems, Inc. Method and apparatus for space-efficient inter-process communication
US5727212A (en) * 1995-04-12 1998-03-10 International Business Machines Corporation Object oriented device driver system for procedural device drivers
US5768126A (en) * 1995-05-19 1998-06-16 Xerox Corporation Kernel-based digital audio mixer

Also Published As

Publication number Publication date
DE69736586T2 (en) 2007-08-30
CA2208297C (en) 2005-05-24
JP3929551B2 (en) 2007-06-13
JPH10283252A (en) 1998-10-23
US6601112B1 (en) 2003-07-29
EP1619581A1 (en) 2006-01-25
JP4889471B2 (en) 2012-03-07
EP0871116A3 (en) 1998-12-16
JP2007128538A (en) 2007-05-24
US6209041B1 (en) 2001-03-27
EP0871116A2 (en) 1998-10-14
DE69736586D1 (en) 2006-10-12
EP0871116B1 (en) 2006-08-30

Similar Documents

Publication Publication Date Title
CA2208297A1 (en) Method and computer program product for reducing inter-buffer data transfers between separate processing components
US6393500B1 (en) Burst-configurable data bus
US6378030B1 (en) Method and apparatus for processing video data
US6317124B2 (en) Graphics memory system that utilizes detached-Z buffering in conjunction with a batching architecture to reduce paging overhead
EP0718768A1 (en) Single-chip microcomputer
CA2124031A1 (en) System Direct Memory Access (DMA) Support Logic for PCI Based Computer System
CA2109682A1 (en) Multiple Bus Interface
WO2002101566A3 (en) Flexible i/o interface and method for providing a common interface to a processing core
CA2265592A1 (en) Producing a mirrored data copy (image) using reference labels
EP0652668A3 (en) System and method for exchanging computer data processing capabilities.
WO2003050655A3 (en) Direct memory access (dma) transfer buffer processor
EP0745969A3 (en) Display control apparatus for a display system
EP0727737A3 (en) Addressing method for executing load instructions out of order with respect to store instructions
US6510484B1 (en) Technique for controlling synchronous devices and asynchronous devices connected to an inter-integrated circuit bus (I2C bus)
KR970008191B1 (en) Method for non-contiguous data transfer and host bridge and information handling system
US7747808B2 (en) USB host controller with memory for transfer descriptors
DE10211054A1 (en) USB host controller
EP0388300A3 (en) Controller for direct memory access
CA2116826A1 (en) Data Processing System Using a Non-Multiplexed, Asynchronous Address/Data Bus System
CA2385079A1 (en) Parallel computer architecture, and information processing unit using the architecture
EP0814401A3 (en) Computer having a feature bus with buffers for external devices
US5850571A (en) System and method for converting read cycles into write cycles for improved system performance
EP0850450B1 (en) Computer system which includes a local expansion bus and a dedicated real-time bus for increased multimedia performance
US6799231B2 (en) Virtual I/O device coupled to memory controller
US6463483B1 (en) Low latency input-output interface

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20150619