JP2007102781A5 - - Google Patents

Download PDF

Info

Publication number
JP2007102781A5
JP2007102781A5 JP2006266590A JP2006266590A JP2007102781A5 JP 2007102781 A5 JP2007102781 A5 JP 2007102781A5 JP 2006266590 A JP2006266590 A JP 2006266590A JP 2006266590 A JP2006266590 A JP 2006266590A JP 2007102781 A5 JP2007102781 A5 JP 2007102781A5
Authority
JP
Japan
Prior art keywords
thread
persistent user
sequencer
level
threads
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
JP2006266590A
Other languages
English (en)
Other versions
JP4690988B2 (ja
JP2007102781A (ja
Filing date
Publication date
Priority claimed from US11/239,475 external-priority patent/US8028295B2/en
Application filed filed Critical
Publication of JP2007102781A publication Critical patent/JP2007102781A/ja
Publication of JP2007102781A5 publication Critical patent/JP2007102781A5/ja
Application granted granted Critical
Publication of JP4690988B2 publication Critical patent/JP4690988B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (45)

  1. オペレーティングシステム(OS)によりスケジューリングされOS可視シーケンサで実行中OSスレッドに基づき、命令セットエクステンションを用いて、前記OSによりスケジューリングされるスレッドに対するコンテキストスイッチ動作と独立してOS分離シーケンサで実行される持続的なユーザレベルスレッドを生成する段階
    備える方法。
  2. 前記持続的なユーザレベルスレッドを前記OS分離シーケンサで実行する段階
    をさらに備える請求項1に記載の方法。
  3. 前記OSによりスケジューリングされるスレッドおよび前記持続的なユーザレベルスレッドは仮想アドレススペースを共有する
    請求項1または2に記載の方法。
  4. 前記持続的なユーザレベルスレッドの実行中にOSによる処理を必要とするイベントが発生した場合、前記持続的なユーザレベルスレッドの実行を一時中断する段階
    さらに備える請求項1から3のいずれかに記載の方法。
  5. 別のOS可視シーケンサで実行されるサービススレッドに、前記一時中断された持続的なユーザレベルスレッドに対して、OSサービスを提供させる段階
    さらに備える請求項に記載の方法。
  6. 前記サービススレッドおよび前記持続的なユーザレベルスレッドは、同じアプリケーションのコンテキストで実行される
    請求項に記載の方法。
  7. 前記持続的なユーザレベルスレッドに対してOSサービスを提供する段階は、
    前記別のOS可視シーケンサに対して、制御移行命令を伝える段階と、
    前記制御移行命令を特権レベルで実行する段階
    有する請求項5または6に記載の方法。
  8. 前記特権レベルにはRing 0レベルが含まれる
    請求項に記載の方法。
  9. 前記持続的なユーザレベルスレッドに対してOSサービスを提供する段階は、
    前記サービススレッドに前記持続的なユーザレベルスレッドの状態を取得させる段階と、
    前記持続的なユーザレベルスレッドに対して代理実行を行う段階と、
    前記持続的なユーザレベルスレッド実行後状態を戻す段階
    有する請求項5から8のいずれかに記載の方法。
  10. 前記実行後状態から前記持続的なユーザレベルスレッドの実行を再開する段階
    をさらに有する請求項に記載の方法。
  11. 前記サービススレッドは、前記持続的なユーザレベルスレッドと共有している仮想アドレス空間を通じて前記持続的なユーザレベルスレッドの状態を取得する
    請求項9または10に記載の方法。
  12. 前記持続的なユーザレベルスレッドは、当該ユーザレベルスレッドを生成したスレッドである前記OSによりスケジューリングされるスレッドに対するコンテキストスイッチ動作と独立して、動作を継続する
    請求項1から11のいずれかに記載の方法。
  13. 前記命令セットエクステンションは、前記OS可視シーケンサおよび前記OS分離シーケンサを識別するオペランドを持つ命令を含む
    請求項1から12のいずれかに記載の方法。
  14. OSによりスケジューリングされOS可視シーケンサで実行中スレッドに基づき、命令セットエクステンションを用いて、前記OSによりスケジューリングされるスレッドに対するコンテキストスイッチ動作とは独立してOS分離シーケンサで実行される持続的なユーザレベルスレッドを生成するシーケンサマネージャ
    を備える装置。
  15. 前記OSによりスケジューリングされるスレッドに対するコンテキストスイッチ動作とは独立して前記持続的なユーザレベルスレッドを実行する前記OS分離シーケンサ
    をさらに備える請求項14に記載の装置。
  16. 前記OSによりスケジューリングされるスレッドおよび前記持続的なユーザレベルスレッドは仮想アドレススペースを共有する
    請求項14または15に記載の装置。
  17. 前記シーケンサマネージャは、前記持続的なユーザレベルスレッドの実行中にOSによる処理を必要とするイベントが発生した場合、前記持続的なユーザレベルスレッドの実行を一時中断する
    請求項14から16のいずれかに記載の装置。
  18. 前記シーケンサマネージャは、別のOS可視シーケンサで実行されるサービススレッドに、前記持続的なユーザレベルスレッドに対してOSサービスを提供させる
    請求項14から17のいずれかに記載の装置。
  19. 前記サービススレッドと前記持続的なユーザレベルスレッドは、同じアプリケーションのコンテキストで実行される
    請求項18に記載の装置。
  20. 前記シーケンサマネージャは、前記別のOS可視シーケンサに対して、制御移行命令を伝え、前記制御移行命令を特権レベルで実行させる
    請求項18または19に記載の装置。
  21. 前記シーケンサマネージャは、前記サービススレッドに前記持続的なユーザレベルスレッドの状態を取得させ、前記持続的なユーザレベルスレッドに対して代理実行を行い、前記持続的なユーザレベルスレッド実行後状態を戻す
    請求項18から20のいずれかに記載の装置。
  22. 前記実行後状態から前記持続的なユーザレベルスレッドの実行を再開する
    請求項21に記載の装置。
  23. 前記サービススレッドは、前記持続的なユーザレベルスレッドと共有している仮想アドレス空間を通じて前記持続的なユーザレベルスレッドの状態を取得する
    請求項21または22に記載の装置。
  24. 前記OS分離シーケンサは、前記持続的なユーザレベルスレッドを生成したスレッドである前記OSによりスケジューリングされるスレッドに対するコンテキストスイッチ動作と独立して、前記持続的なユーザレベルスレッドの動作を継続させる
    請求項14から23のいずれかに記載の装置。
  25. 前記命令セットエクステンションは、前記OS可視シーケンサおよび前記OS分離シーケンサを識別するオペランドを持つ命令を含む
    請求項14から24のいずれかに記載の装置。
  26. システムであって、
    OS、少なくとも1つのユーザレベルプログラム、前記プログラムを接続するためのアプリケーションプログラムインターフェース、および前記プログラムの実行をスケジューリングするスケジューラを格納しているメモリと、
    少なくとも1つのOS可視シーケンサおよび少なくとも1つのOS分離シーケンサを有するマルチシーケンサと、
    OSによりスケジューリングされOS可視シーケンサで実行中スレッドに基づき、命令セットエクステンションを用いて、前記OSによりスケジューリングされるスレッドに対するコンテキストスイッチ動作とは独立してOS分離シーケンサで実行される持続的なユーザレベルスレッドを生成するシーケンサマネージャと
    を備えるシステム。
  27. 前記OSによりスケジューリングされるスレッドに対するコンテキストスイッチ動作とは独立して前記持続的なユーザレベルスレッドを実行する前記OS分離シーケンサ
    をさらに備える請求項26に記載のシステム。
  28. 前記OSによりスケジューリングされるスレッドと前記持続的なユーザレベルスレッドは仮想アドレススペースを共有する
    請求項26または27に記載のシステム。
  29. 前記シーケンサマネージャは、前記持続的なユーザレベルスレッドの実行中にOSによる処理を必要とするイベントが発生した場合、前記持続的なユーザレベルスレッドの実行を一時中断する
    請求項26から28のいずれかに記載のシステム。
  30. 前記シーケンサマネージャは、前記OS可視シーケンサで実行されるサービススレッドに、前記持続的なユーザレベルスレッドに対して、OSサービスを提供させる
    請求項26から29のいずれかに記載のシステム。
  31. 前記シーケンサマネージャは、前記OS可視シーケンサに対して、制御移行命令を伝え、前記OS可視シーケンサに前記制御移行命令を特権レベルで実行させる
    請求項30に記載のシステム。
  32. 前記シーケンサマネージャは、前記サービススレッドに前記持続的なユーザレベルスレッドの状態を取得させ、前記持続的なユーザレベルスレッドに対して代理実行を行い、前記持続的なユーザレベルスレッド実行後状態を戻す
    請求項30または31に記載のシステム。
  33. 前記実行後状態から前記持続的なユーザレベルスレッドの実行を再開する
    請求項32に記載のシステム。
  34. 前記サービススレッドは、前記持続的なユーザレベルスレッドと共有している仮想アドレス空間を通じて前記持続的なユーザレベルスレッドの状態を取得する
    請求項32または33に記載のシステム。
  35. 前記OS分離シーケンサは、前記持続的なユーザレベルスレッドユーザレベルスレッドを生成したスレッドである前記OSによりスケジューリングされるスレッドに対するコンテキストスイッチ動作と独立して、前記持続的なユーザレベルスレッドの動作を継続させる
    請求項26から34のいずれかに記載のシステム。
  36. 前記命令セットエクステンションは、前記OS可視シーケンサおよび前記OS分離シーケンサを識別するオペランドを持つ命令を含む
    請求項26から35のいずれかに記載のシステム。
  37. コンピュータに
    OSによりスケジューリングされOS可視シーケンサで実行中スレッドに基づき、命令セットエクステンションを用いて、前記OSによりスケジューリングされるスレッドに対するコンテキストスイッチ動作とは独立してOS分離シーケンサで実行される持続的なユーザレベルスレッドを生成する手順
    を実行させるプログラム
  38. 前記コンピュータに、
    前記持続的なユーザレベルスレッドを前記OS分離シーケンサで実行する手順
    をさらに実行させる請求項37に記載のプログラム。
  39. 前記コンピュータに、
    前記OSによりスケジューリングされるスレッドおよび前記持続的なユーザレベルスレッド仮想アドレススペースを共有させ手順
    をさらに実行させる請求項37または38に記載のプログラム
  40. 前記コンピュータに、
    前記持続的なユーザレベルスレッドの実行中にOSによる処理を必要とするイベントが発生した場合、前記持続的なユーザレベルスレッドの実行一時中断させ手順
    をさらに実行させる請求項37から39のいずれかに記載のプログラム
  41. 前記コンピュータに、
    別のOS可視シーケンサで実行されるサービススレッド、前記持続的なユーザレベルスレッドに対して、OSサービスを提供させ手順
    をさらに実行させる請求項37から40のいずれかに記載のプログラム
  42. 前記OSサービスを提供させる手順は、
    前記別のOS可視シーケンサに対して、制御移行命令え、前記制御移行命令特権レベルで実行させ手順
    を有する請求項41に記載のプログラム
  43. 前記OSサービスを提供させる手順は、
    前記サービススレッドに、前記持続的なユーザレベルスレッドと共有している仮想アドレス空間を通じて前記持続的なユーザレベルスレッドの状態を取得させる手順
    を有する請求項41または42に記載のプログラム。
  44. 前記OS分離シーケンサに、前記持続的なユーザレベルスレッドユーザレベルスレッドを生成したスレッドである前記OSによりスケジューリングされるスレッドに対するコンテキストスイッチ動作と独立して、前記持続的なユーザレベルスレッドの動作を継続させる
    請求項37から43のいずれかに記載のプログラム。
  45. 前記命令セットエクステンションは、前記OS可視シーケンサおよび前記OS分離シーケンサを識別するオペランドを持つ命令を含む
    請求項37から44のいずれかに記載のプログラム。
JP2006266590A 2005-09-30 2006-09-29 持続的なユーザレベルスレッド用の装置、システムおよび方法 Expired - Fee Related JP4690988B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/239,475 2005-09-30
US11/239,475 US8028295B2 (en) 2005-09-30 2005-09-30 Apparatus, system, and method for persistent user-level thread

Publications (3)

Publication Number Publication Date
JP2007102781A JP2007102781A (ja) 2007-04-19
JP2007102781A5 true JP2007102781A5 (ja) 2009-08-06
JP4690988B2 JP4690988B2 (ja) 2011-06-01

Family

ID=37887229

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006266590A Expired - Fee Related JP4690988B2 (ja) 2005-09-30 2006-09-29 持続的なユーザレベルスレッド用の装置、システムおよび方法

Country Status (4)

Country Link
US (5) US8028295B2 (ja)
JP (1) JP4690988B2 (ja)
CN (2) CN101038543B (ja)
DE (1) DE102006046129A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719819B2 (en) 2005-06-30 2014-05-06 Intel Corporation Mechanism for instruction set based thread execution on a plurality of instruction sequencers
US8028295B2 (en) 2005-09-30 2011-09-27 Intel Corporation Apparatus, system, and method for persistent user-level thread
US8689215B2 (en) * 2006-12-19 2014-04-01 Intel Corporation Structured exception handling for application-managed thread units
JP4450242B2 (ja) 2007-04-10 2010-04-14 ヒロセ電機株式会社 同軸コネクタ
US20080307419A1 (en) * 2007-06-06 2008-12-11 Microsoft Corporation Lazy kernel thread binding
US20080313656A1 (en) * 2007-06-18 2008-12-18 Microsoft Corporation User mode stack disassociation
US20080320475A1 (en) * 2007-06-19 2008-12-25 Microsoft Corporation Switching user mode thread context
US8261284B2 (en) * 2007-09-13 2012-09-04 Microsoft Corporation Fast context switching using virtual cpus
JP4978914B2 (ja) * 2007-10-19 2012-07-18 インテル・コーポレーション マイクロプロセッサ上での複数命令ストリーム/複数データストリームの拡張を可能にする方法およびシステム
JP5167844B2 (ja) * 2008-02-05 2013-03-21 日本電気株式会社 プロセッサ、電子機器、割込み制御方法及び割込み制御プログラム
EP2207394B1 (en) * 2008-11-04 2012-07-11 HTC Corporation Method and apparatus for improving a semi-persistent scheduling resource release process in a wireless communication system
US9354944B2 (en) 2009-07-27 2016-05-31 Advanced Micro Devices, Inc. Mapping processing logic having data-parallel threads across processors
US8464035B2 (en) * 2009-12-18 2013-06-11 Intel Corporation Instruction for enabling a processor wait state
US9720730B2 (en) * 2011-12-30 2017-08-01 Intel Corporation Providing an asymmetric multicore processor system transparently to an operating system
KR101691063B1 (ko) * 2012-01-10 2016-12-29 인텔 코포레이션 콜백을 이용하는 isa 브리징
WO2013162589A1 (en) * 2012-04-27 2013-10-31 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
US10162687B2 (en) * 2012-12-28 2018-12-25 Intel Corporation Selective migration of workloads between heterogeneous compute elements based on evaluation of migration performance benefit and available energy and thermal budgets
US9384036B1 (en) * 2013-10-21 2016-07-05 Google Inc. Low latency thread context caching
US10037227B2 (en) * 2015-12-17 2018-07-31 Intel Corporation Systems, methods and devices for work placement on processor cores
US11023233B2 (en) * 2016-02-09 2021-06-01 Intel Corporation Methods, apparatus, and instructions for user level thread suspension
CN108009007B (zh) * 2016-10-27 2021-01-15 华为技术有限公司 轻量级线程的调度方法及协同管理器、vCPU调度器
CN113946528A (zh) * 2020-07-16 2022-01-18 华为技术有限公司 切换系统架构的方法与装置

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0497445A (ja) 1990-08-16 1992-03-30 Nec Corp 情報処理装置の診断方式
JPH05265876A (ja) 1992-03-19 1993-10-15 Fujitsu Ltd エラー報告処理方式
US5485626A (en) * 1992-11-03 1996-01-16 International Business Machines Corporation Architectural enhancements for parallel computer systems utilizing encapsulation of queuing allowing small grain processing
US6732138B1 (en) * 1995-07-26 2004-05-04 International Business Machines Corporation Method and system for accessing system resources of a data processing system utilizing a kernel-only thread within a user process
US5991790A (en) * 1996-07-01 1999-11-23 Sun Microsystems, Inc. Generation and delivery of signals in a two-level, multithreaded system
US6223204B1 (en) * 1996-12-18 2001-04-24 Sun Microsystems, Inc. User level adaptive thread blocking
US5872963A (en) * 1997-02-18 1999-02-16 Silicon Graphics, Inc. Resumption of preempted non-privileged threads with no kernel intervention
US6766515B1 (en) * 1997-02-18 2004-07-20 Silicon Graphics, Inc. Distributed scheduling of parallel jobs with no kernel-to-kernel communication
US6175916B1 (en) * 1997-05-06 2001-01-16 Microsoft Corporation Common-thread inter-process function calls invoked by jumps to invalid addresses
US6189023B1 (en) * 1997-09-30 2001-02-13 Tandem Computers Incorporated Simulating shared code thread modules with shared code fibers
US5923892A (en) 1997-10-27 1999-07-13 Levy; Paul S. Host processor and coprocessor arrangement for processing platform-independent code
US6289369B1 (en) * 1998-08-25 2001-09-11 International Business Machines Corporation Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system
US6366946B1 (en) * 1998-12-16 2002-04-02 Microsoft Corporation Critical code processing management
EP1037147A1 (en) * 1999-03-15 2000-09-20 BRITISH TELECOMMUNICATIONS public limited company Resource scheduling
JP3557947B2 (ja) * 1999-05-24 2004-08-25 日本電気株式会社 複数のプロセッサで同時にスレッドの実行を開始させる方法及びその装置並びにコンピュータ可読記録媒体
US7043725B1 (en) * 1999-07-09 2006-05-09 Hewlett-Packard Development Company, L.P. Two tier arrangement for threads support in a virtual machine
WO2001018646A1 (en) * 1999-09-01 2001-03-15 Intel Corporation Branch instruction for multithreaded processor
JP2001255961A (ja) 2000-03-01 2001-09-21 Internatl Business Mach Corp <Ibm> コンピュータ及び冷却ファンの制御方法
US6651163B1 (en) * 2000-03-08 2003-11-18 Advanced Micro Devices, Inc. Exception handling with reduced overhead in a multithreaded multiprocessing system
US6961941B1 (en) * 2001-06-08 2005-11-01 Vmware, Inc. Computer configuration for resource management in systems including a virtual machine
JP3702813B2 (ja) * 2001-07-12 2005-10-05 日本電気株式会社 マルチスレッド実行方法及び並列プロセッサシステム
US20030191730A1 (en) * 2002-04-05 2003-10-09 Compaq Information Technologies Group, L.P. Unobtrusive rule-based computer usage enhancement system
US7200846B2 (en) * 2002-08-05 2007-04-03 Sun Microsystems, Inc. System and method for maintaining data synchronization
US7962545B2 (en) * 2002-12-27 2011-06-14 Intel Corporation Dynamic service registry for virtual machines
US7216346B2 (en) * 2002-12-31 2007-05-08 International Business Machines Corporation Method and apparatus for managing thread execution in a multithread application
US7406699B2 (en) * 2003-04-02 2008-07-29 Microsoft Corporation Enhanced runtime hosting
US7093147B2 (en) * 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US7496928B2 (en) * 2003-08-28 2009-02-24 Microsoft Corporation Method and system for moderating thread priority boost for I/O completion
US7376954B2 (en) * 2003-08-28 2008-05-20 Mips Technologies, Inc. Mechanisms for assuring quality of service for programs executing on a multithreaded processor
US7360223B2 (en) * 2003-09-24 2008-04-15 Hewlett-Packard Development Company, L.P. Arrangements and methods for invoking an upcall in a computer system
US20050076186A1 (en) * 2003-10-03 2005-04-07 Microsoft Corporation Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements
US7380039B2 (en) * 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
US8533716B2 (en) * 2004-03-31 2013-09-10 Synopsys, Inc. Resource management in a multicore architecture
US9189230B2 (en) * 2004-03-31 2015-11-17 Intel Corporation Method and system to provide concurrent user-level, non-privileged shared resource thread creation and execution
US20060075404A1 (en) * 2004-10-06 2006-04-06 Daniela Rosu Method and system for scheduling user-level I/O threads
US7669204B2 (en) * 2004-10-14 2010-02-23 International Business Machines Corporation Autonomic SMT System tuning
US8621458B2 (en) * 2004-12-21 2013-12-31 Microsoft Corporation Systems and methods for exposing processor topology for virtual machines
US8607235B2 (en) * 2004-12-30 2013-12-10 Intel Corporation Mechanism to schedule threads on OS-sequestered sequencers without operating system intervention
US8719819B2 (en) * 2005-06-30 2014-05-06 Intel Corporation Mechanism for instruction set based thread execution on a plurality of instruction sequencers
US7992144B1 (en) * 2005-04-04 2011-08-02 Oracle America, Inc. Method and apparatus for separating and isolating control of processing entities in a network interface
US8516483B2 (en) 2005-05-13 2013-08-20 Intel Corporation Transparent support for operating system services for a sequestered sequencer
US7752620B2 (en) * 2005-06-06 2010-07-06 International Business Machines Corporation Administration of locks for critical sections of computer programs in a computer that supports a multiplicity of logical partitions
US8028295B2 (en) * 2005-09-30 2011-09-27 Intel Corporation Apparatus, system, and method for persistent user-level thread

Similar Documents

Publication Publication Date Title
JP2007102781A5 (ja)
Gu et al. A state-of-the-art survey on real-time issues in embedded systems virtualization
JP6228459B2 (ja) システムコール要求の通信の最適化
KR20140107408A (ko) 그래픽스 처리 유닛 상의 가상 기계들 사이의 변경
KR101247407B1 (ko) 이질적 리소스와의 명령어 세트 아키텍처-기반 시퀀서간 통신
JP6189858B2 (ja) シェーダコアにおけるシェーダリソース割当てのポリシー
US10242420B2 (en) Preemptive context switching of processes on an accelerated processing device (APD) based on time quanta
JP6086868B2 (ja) ユーザモードからのグラフィックス処理ディスパッチ
JP5244160B2 (ja) 複数の命令シーケンサでのスレッド実行に基づく命令セットのためのメカニズム
TW200820082A (en) Logical partitioning and virtualization in a heterogeneous architecture
KR20110106368A (ko) 명령어 스트림을 공유하는 코프로세서 유닛
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
KR20130127480A (ko) 이종 처리 디바이스의 동적 작업 분할
JP2014504416A (ja) 組み合わせたcpu/gpuアーキテクチャシステムにおけるデバイスの発見およびトポロジーのレポーティング
JP2007102781A (ja) 持続的なユーザレベルスレッド用の装置、システムおよび方法
WO2013185571A1 (zh) 多线程虚拟流水线处理器的线程控制和调用方法及其处理器
WO2014101561A1 (zh) 单个处理器上实现多应用并行处理的方法及装置
WO2018040845A1 (zh) 一种计算资源调度方法及装置
JP2010182096A (ja) プログラム並列実行システム、マルチコアプロセッサ上のプログラム並列実行方法
Humphries et al. A case against (most) context switches
US20130160017A1 (en) Software Mechanisms for Managing Task Scheduling on an Accelerated Processing Device (APD)
JP2014503898A (ja) 処理装置の同期動作のための方法およびシステム
JP2008523491A (ja) アクティブオブジェクトへのアクセスを提供する方法及びシステム
JP2014503899A (ja) コンピュータシステムインタラプト処理
Chang et al. Virtualization technology for TCP/IP offload engine