JP2021532456A - クロス命令セットアーキテクチャプロシージャ呼出のためのスレッドウィービング - Google Patents
クロス命令セットアーキテクチャプロシージャ呼出のためのスレッドウィービング Download PDFInfo
- Publication number
- JP2021532456A JP2021532456A JP2021500607A JP2021500607A JP2021532456A JP 2021532456 A JP2021532456 A JP 2021532456A JP 2021500607 A JP2021500607 A JP 2021500607A JP 2021500607 A JP2021500607 A JP 2021500607A JP 2021532456 A JP2021532456 A JP 2021532456A
- Authority
- JP
- Japan
- Prior art keywords
- function
- cpu
- isa
- processor
- cpu isa
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000009941 weaving Methods 0.000 title description 3
- 230000006870 function Effects 0.000 claims abstract description 158
- 238000012545 processing Methods 0.000 claims description 13
- 238000013138 pruning Methods 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 abstract description 2
- 238000004366 reverse phase liquid chromatography Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 5
- 230000001427 coherent effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/47—Retargetable compilers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
Description
本願は、2018年7月10日に出願された米国仮特許出願第62/696,132号からの優先権を主張し、その全てが、参照によりその全体として本明細書に援用される。
本発明は、コードを開始する方法、アプリケーションを実行する方法、および異種マルチプロセッサに関する。
複雑なコンピュータシステムは、それぞれ、一意の命令セットアーキテクチャを伴う異なるベンダからの複数のプロセッサコアを伴う異種アプローチを頻繁に利用する。異種マルチプロセッサのためのコードを発生させることは、プログラマにとって困難なタスクであり得る。プログラマは、本質的に、2つの別個のバイナリ非互換のコアと別個に互換性のあるプロシージャ呼出に対処し、他のプロセッサがより効率的であり得る境界線において1つのスレッドから別のものに遷移し得るプロシージャ呼出に対処しなければならない。この種類の複雑性は、ソフトウェア作者が、高レベルのC++スレッドプリミティブおよびライブラリ等の従来の高レベルのコンピュータ言語を使用して、機能的な正しさに焦点を当てることを困難にする。
図1は、一次命令セットアーキテクチャ(ISA)上で起動するためのコード12と、二次ISA上で起動するためのコード14と、共通データ16とを含む概念的な異種マルチプロセッサアプリケーション10を図示する。
Claims (14)
- コードを開始する方法であって、
(i)メモリ内にアプリケーションを記憶することであって、前記アプリケーションは、第1の機能、第2の機能、および第3の機能を有し、前記第1の機能は、前記アプリケーションを起動するために前記第2の機能および前記第3の機能を呼び出す主要機能である、ことと、
(ii)前記アプリケーションを第1の異種プロセッサおよび第2の異種プロセッサにコンパイルし、それぞれ、第1の中央処理ユニット(CPU)命令セットアーキテクチャ(ISA)オブジェクトおよび第2のCPU ISAオブジェクトを作成することと、
(iii)前記第1のCPU ISAオブジェクトから前記第3の機能を除去し、前記第2のCPU ISAオブジェクトから第1の機能および第2の機能を除去することによって、前記第1のCPU ISAオブジェクトおよび前記第2のCPU ISAオブジェクトをプルーニングすることと、
(iv)それぞれ、前記第1のCPU ISAオブジェクトおよび前記第2のCPU ISAオブジェクト内に第1のリモートプロシージャ呼出(RPC)および第2のRPCをプロキシ挿入し、それぞれ、前記第2のCPU ISAオブジェクト内の前記第3の機能および前記第1のCPU ISAオブジェクト内の前記第2の機能をポイントすることと、
(v)前記第2のCPU ISAオブジェクトをセクションリネーミングし、前記第1のCPU ISAオブジェクトおよび前記第2のCPU ISAオブジェクトの共通アプリケーションライブラリを作成することと
を含む、方法。 - 前記第1の機能は、前記第2の機能をポイントする、請求項1に記載の方法。
- 前記第1の機能は、前記第1のRPCをポイントする、請求項1に記載の方法。
- それぞれ、前記第1のCPU ISAオブジェクト内の前記第3の機能および前記第2のCPU ISAオブジェクト内の前記第2の機能を前記第1のRPCおよび前記第2のRPCと置換することをさらに含む、請求項1に記載の方法。
- 前記アプリケーションは、前記第1のCPU ISAオブジェクトおよび前記第2のCPU ISAオブジェクトの機能によって使用されるデータ構造を有する、請求項1に記載の方法。
- 前記コンパイルすること(ii)の間、前記データ構造は、前記第2のプロセッサにコンパイルされる、請求項5に記載の方法。
- 前記プルーニングすること(iii)の間、前記データ構造は、前記第2のCPU ISAオブジェクトから除去される、請求項6に記載の方法。
- 前記第1の機能は、前記データ構造を使用する、請求項5に記載の方法。
- 前記第3の機能は、前記データ構造を使用する、請求項5に記載の方法。
- 前記第2のCPU ISAオブジェクト内の前記第3の機能は、前記第1のCPU ISAオブジェクト内の前記データ構造をポイントする、請求項9に記載の方法。
- (1)前記第1のCPU ISAオブジェクトのうちの少なくとも1つを伴う前記第1のプロセッサ上で前記主要機能を実行することであって、前記主要機能は、
(2)前記第1のCPU ISAオブジェクトのうちの少なくとも1つを伴う前記第1のプロセッサ上の前記第1のRPC、
(3)前記第2のCPU ISAオブジェクトのうちの少なくとも1つを伴う前記第2のプロセッサ上の前記第3の機能、
(4)前記第2のCPU ISAオブジェクトのうちの少なくとも1つを伴う前記第2のプロセッサ上の前記第2のRPC、および、
(5)前記第1のCPU ISAオブジェクトのうちの少なくとも1つを伴う前記第1のプロセッサ上の前記第2の機能
の連続的実行を引き起こす、こと
をさらに含む、請求項4に記載の方法。 - コンピュータ可読媒体であって、前記コンピュータ可読媒体は、方法を実行するためにプロセッサによって実行可能である命令のセットをその上に記憶しており、前記方法は、
(i)メモリ内にアプリケーションを記憶することであって、前記アプリケーションは、第1の機能、第2の機能、および第3の機能を有し、前記第1の機能は、第1のアプリケーションを起動するために前記第2の機能および前記第3の機能を呼び出す主要機能である、ことと、
(ii)前記アプリケーションを第1の異種プロセッサおよび第2の異種プロセッサにコンパイルし、それぞれ、第1の中央処理ユニット(CPU)命令セットアーキテクチャ(ISA)オブジェクトおよび第2のCPU ISAオブジェクトを作成することと、
(iii)前記第1のCPU ISAオブジェクトから前記第3の機能を除去し、前記第2のCPU ISAオブジェクトから第1の機能および第2の機能を除去することによって、前記第1のCPU ISAオブジェクトおよび前記第2のCPU ISAオブジェクトをプルーニングすることと、
(iv)それぞれ、前記第1のCPU ISAオブジェクトおよび前記第2のCPU ISAオブジェクト内に第1のリモートプロシージャ呼出(RPC)および第2のRPCをプロキシ挿入し、それぞれ、前記第2のCPU ISAオブジェクト内の前記第3の機能および前記第1のCPU ISAオブジェクト内の前記第2の機能をポイントすることと、
(v)前記第2のCPU ISAオブジェクトをセクションリネーミングし、前記第1のCPU ISAオブジェクトおよび前記第2のCPU ISAオブジェクトの共通アプリケーションライブラリを作成することと
を含む、コンピュータ可読媒体。 - アプリケーションを実行する方法であって、
(1)第1の機能、第2の機能、および第3の機能を有するアプリケーションの第1の機能を実行することであって、前記第1の機能は、主要機能であり、第1のプロセッサにコンパイルされる第1の中央処理ユニット(CPU)命令セットアーキテクチャ(ISA)オブジェクトのうちの少なくとも1つを伴う前記第1のプロセッサ上で、前記主要機能は、
(2)前記第1のCPU ISAオブジェクトのうちの少なくとも1つを伴う前記第1のプロセッサ上の第1のリモートプロシージャ呼出(RPC)、
(3)第2のプロセッサにコンパイルされる第2のCPU ISAオブジェクトのうちの少なくとも1つを伴う前記第2のプロセッサ上の前記第3の機能、
(4)前記第2のCPU ISAオブジェクトのうちの少なくとも1つを伴う前記第2のプロセッサ上の前記第2のRPC、および、
(5)前記第1のCPU ISAオブジェクトのうちの少なくとも1つを伴う前記第1のプロセッサ上の前記第2の機能
の連続的実行を引き起こす、こと
を含む、方法。 - 異種マルチプロセッサであって、
第1の異種プロセッサおよび第2の異種プロセッサと、
メモリと、
前記メモリ上のアプリケーションと
を備え、
前記アプリケーションは、
第1の機能、第2の機能、および第3の機能、ならびに第1のリモートプロシージャ呼出および第2のリモートプロシージャ呼出(RPC)を含み、
(1)前記第1の機能は、前記第1のプロセッサにコンパイルされる第1の中央処理ユニット(CPU)命令セットアーキテクチャ(ISA)オブジェクトのうちの少なくとも1つを伴う前記第1のプロセッサ上で実行される主要機能であり、前記主要機能は、
(2)前記第1のCPU ISAオブジェクトのうちの少なくとも1つを伴う前記第1のプロセッサ上の前記第1のRPC、
(3)第2のプロセッサにコンパイルされる第2のCPU ISAオブジェクトのうちの少なくとも1つを伴う前記第2のプロセッサ上の前記第3の機能、
(4)前記第2のCPU ISAオブジェクトのうちの少なくとも1つを伴う前記第2のプロセッサ上の前記第2のRPC、および、
(5)前記第1のCPU ISAオブジェクトのうちの少なくとも1つを伴う前記第1のプロセッサ上の前記第2の機能
の連続的実行を引き起こす、異種マルチプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023183216A JP2024010097A (ja) | 2018-07-10 | 2023-10-25 | クロス命令セットアーキテクチャプロシージャ呼出のためのスレッドウィービング |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862696132P | 2018-07-10 | 2018-07-10 | |
US62/696,132 | 2018-07-10 | ||
PCT/US2019/041151 WO2020014324A1 (en) | 2018-07-10 | 2019-07-10 | Thread weave for cross-instruction set architecture procedure calls |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023183216A Division JP2024010097A (ja) | 2018-07-10 | 2023-10-25 | クロス命令セットアーキテクチャプロシージャ呼出のためのスレッドウィービング |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021532456A true JP2021532456A (ja) | 2021-11-25 |
JP7374981B2 JP7374981B2 (ja) | 2023-11-07 |
Family
ID=69142713
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021500607A Active JP7374981B2 (ja) | 2018-07-10 | 2019-07-10 | クロス命令セットアーキテクチャプロシージャ呼出のためのスレッドウィービング |
JP2023183216A Pending JP2024010097A (ja) | 2018-07-10 | 2023-10-25 | クロス命令セットアーキテクチャプロシージャ呼出のためのスレッドウィービング |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023183216A Pending JP2024010097A (ja) | 2018-07-10 | 2023-10-25 | クロス命令セットアーキテクチャプロシージャ呼出のためのスレッドウィービング |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210271484A1 (ja) |
EP (1) | EP3821340A4 (ja) |
JP (2) | JP7374981B2 (ja) |
CN (1) | CN112585581A (ja) |
WO (1) | WO2020014324A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130061240A1 (en) * | 2009-10-30 | 2013-03-07 | Central Glass Company, LKimited | Two way communication support for heterogenous processors of a computer platform |
WO2015143641A1 (en) * | 2014-03-26 | 2015-10-01 | Empire Technology Development Llc | Compilation of application into multiple instruction sets for a heterogeneous processor |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2061117C (en) * | 1991-12-02 | 1998-09-29 | Neta J. Amit | Apparatus and method for distributed program stack |
US5497463A (en) * | 1992-09-25 | 1996-03-05 | Bull Hn Information Systems Inc. | Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system |
JP2000099332A (ja) * | 1998-09-25 | 2000-04-07 | Hitachi Ltd | 遠隔手続き呼び出し最適化方法とこれを用いたプログラム実行方法 |
US20100153934A1 (en) * | 2008-12-12 | 2010-06-17 | Peter Lachner | Prefetch for systems with heterogeneous architectures |
CN104756078B (zh) * | 2012-08-20 | 2018-07-13 | 唐纳德·凯文·卡梅伦 | 处理资源分配的装置和方法 |
US10437591B2 (en) * | 2013-02-26 | 2019-10-08 | Qualcomm Incorporated | Executing an operating system on processors having different instruction set architectures |
US20140359590A1 (en) * | 2013-05-30 | 2014-12-04 | National Instruments Corporation | Development and Deployment of Parallel Floating-Point Math Functionality on a System with Heterogeneous Hardware Components |
US20150301955A1 (en) * | 2014-04-21 | 2015-10-22 | Qualcomm Incorporated | Extending protection domains to co-processors |
EP3230853A4 (en) * | 2014-12-09 | 2019-05-29 | Intel Corporation | SYSTEM AND METHOD FOR PERFORMING A COMPILED APPLICATION CODE ACCORDING TO TWO ARCHITECTURES OF INSTRUCTION GAMES |
US20180260218A1 (en) * | 2017-03-07 | 2018-09-13 | Vinodh Gopal | Instruction set architectures for fine-grained heterogeneous processing |
-
2019
- 2019-07-10 JP JP2021500607A patent/JP7374981B2/ja active Active
- 2019-07-10 US US17/259,020 patent/US20210271484A1/en active Pending
- 2019-07-10 EP EP19833664.6A patent/EP3821340A4/en active Pending
- 2019-07-10 CN CN201980053016.XA patent/CN112585581A/zh active Pending
- 2019-07-10 WO PCT/US2019/041151 patent/WO2020014324A1/en unknown
-
2023
- 2023-10-25 JP JP2023183216A patent/JP2024010097A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130061240A1 (en) * | 2009-10-30 | 2013-03-07 | Central Glass Company, LKimited | Two way communication support for heterogenous processors of a computer platform |
WO2015143641A1 (en) * | 2014-03-26 | 2015-10-01 | Empire Technology Development Llc | Compilation of application into multiple instruction sets for a heterogeneous processor |
Also Published As
Publication number | Publication date |
---|---|
US20210271484A1 (en) | 2021-09-02 |
JP2024010097A (ja) | 2024-01-23 |
EP3821340A1 (en) | 2021-05-19 |
JP7374981B2 (ja) | 2023-11-07 |
WO2020014324A1 (en) | 2020-01-16 |
EP3821340A4 (en) | 2021-11-24 |
CN112585581A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111831287B (zh) | 用于确定执行代码段所需的资源的方法、设备和程序产品 | |
KR102364552B1 (ko) | 그래프 기반 프로그램 명세의 실행 | |
KR102361155B1 (ko) | 특정 데이터 포트 연결의 식별에 기반한 그래프 구성요소의 자동화된 클러스터링을 통한 그래프 기반 프로그램 명세의 컴파일 | |
JP6122493B2 (ja) | 適応的に移植性を有したライブラリ | |
KR102364553B1 (ko) | 태스크의 호출 관리 | |
EP3035191B1 (en) | Identifying source code used to build executable files | |
JP7311710B2 (ja) | 実行時コンテナ | |
JP5328055B2 (ja) | メモリトランザクションのグループ化 | |
KR101279179B1 (ko) | 병렬 프로그램 생성 방법 | |
KR102375349B1 (ko) | 연관된 태스크들을 제어하기 위한 그래프 기반 프로그램 명세의 구성요소들의 실행 상태 관리 | |
US10853049B2 (en) | Methods for enabling a computer to migrate microservices and to perform microservice templating | |
US20120159461A1 (en) | Program optimizing apparatus, program optimizing method, and program optimizing article of manufacture | |
US8799889B2 (en) | Application downloading | |
US8701096B2 (en) | In-order execution in an asynchronous programming environment | |
JP2008276740A (ja) | 並列スレッド・コンピューティングの仮想のアーキテクチャ及び命令セット | |
JP2008276740A5 (ja) | ||
US9378013B2 (en) | Incremental source code analysis | |
KR101293701B1 (ko) | 코어스 그레인드 재구성 어레이에서의 중첩 루프문 수행 장치 및 그 방법 | |
US20040261055A1 (en) | Predictively processing tasks for building software | |
CN111782335A (zh) | 通过进程内操作系统的扩展应用机制 | |
JP7374981B2 (ja) | クロス命令セットアーキテクチャプロシージャ呼出のためのスレッドウィービング | |
Krauweel et al. | Simpler coordination of JavaScript web workers | |
US20220391216A1 (en) | Graphics processing | |
KR101213651B1 (ko) | 운영체제의 초기화 스크립트의 이진화 방법, 및 그 이진화 스크립트의 실행 방법 | |
WO2007144891A1 (en) | A method for the distribution of software processes to a plurality of computers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220510 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230518 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230526 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230825 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230925 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231025 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7374981 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |