JP2021111313A - 情報処理用方法及び装置 - Google Patents

情報処理用方法及び装置 Download PDF

Info

Publication number
JP2021111313A
JP2021111313A JP2020096666A JP2020096666A JP2021111313A JP 2021111313 A JP2021111313 A JP 2021111313A JP 2020096666 A JP2020096666 A JP 2020096666A JP 2020096666 A JP2020096666 A JP 2020096666A JP 2021111313 A JP2021111313 A JP 2021111313A
Authority
JP
Japan
Prior art keywords
instruction
register
information
configuration
register set
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
JP2020096666A
Other languages
English (en)
Other versions
JP6998991B2 (ja
Inventor
ビーボー ヤン
Bibo Yang
ビーボー ヤン
シャオピン ヤン
Xiaoping Yan
シャオピン ヤン
チャオ ティエン
Chao Tian
チャオ ティエン
ジュンフイ ウェン
Junhui Wen
ジュンフイ ウェン
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.)
Baidu Online Network Technology Beijing Co Ltd
Original Assignee
Baidu Online Network Technology Beijing Co Ltd
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 Baidu Online Network Technology Beijing Co Ltd filed Critical Baidu Online Network Technology Beijing Co Ltd
Publication of JP2021111313A publication Critical patent/JP2021111313A/ja
Application granted granted Critical
Publication of JP6998991B2 publication Critical patent/JP6998991B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • 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/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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
    • G06F9/3881Arrangements for communication of instructions and data
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Abstract

【課題】縮小命令セットプロセッサアーキテクチャにおける専用命令を拡張する方法を提供する。【解決手段】情報処理用方法は、取得した命令の命令オペコードに基づき、該命令の、レジスタ選択情報、ベースアドレス情報及び読み取り対象データ長を含む専用命令を含む命令タイプを確定することと、該命令が専用命令であると判定されたことに応答し、専用命令を事前設置された演算装置に送信することと、を含む。演算装置は、レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとし、ベースアドレス情報及び読み取り対象データ長に基づき、目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出し、コンフィギュレーション情報に対して事前設定された演算を実行することを備える演算ステップを実行する。【選択図】図2

Description

本開示の実施形態はコンピュータ技術分野に関し、具体的には情報処理用方法及び装置に関する。
縮小命令セットコンピュータ(Reduced Instruction Set Computer,RISC)は複雑命令セットコンピュータに対するものである。CISCは機械のハードウェア構造を増加させることによりコンピュータに対する益々高くなる性能要求を満たす。コンピュータ構造の発展は複雑性が益々高くなるプロセッサによって独占され、コンピュータ操作と高級言語の差を減少させることと機械の運転特性を改善することのため、機械語命令はますます多くなり、命令システムもますます複雑になる。特に比較的高速なCPU(central processing unit)と比較的低速なメモリの間で矛盾があり、データのアクセス回数をできるだけ減少し、機械の速度を向上させるため、複雑命令セットを大幅に発展させた。しかし、半導体プロセス技術の発展に伴い、メモリの速度が向上し続け、特に高速バッファの使用に伴い、コンピュータシステムの構造が根本的に変化する。ハードウェアプロセス技術の向上の一方、ソフトウェアも同様に重要な進展が発生し、最適化コンパイラが現れ、それによって、プログラムの実行時間ができるだけ低減され、機械語が占有するメモリ容量が最小になる。先端メモリ技術及び先端コンパイラプログラムを有する条件では、CISCアーキテクチャも適切なものではなく、RISCアーキテクチャが誕生した。RISC技術の基本的な出発点は機械語命令システムを簡略化することによりハードウェア設計の複雑度を低減し、命令の実行速度を向上させる。
端末側AI(Artificial Intelligence、人工知能)推論チップの設計において、RISC命令セットを採用する場合、チップ面積、コスト、消費電力を大幅に削減することができる。より強い製品競争力をもたらす。しかし、特定の応用分野に対して設計された端末側のAI推論チップについて、その応用シナリオ及び典型的な計算負荷は専用チップの特徴を有し、単純に汎用のRISC命令セットを採用すればその演算効率を向上させることは困難である。
本開示の実施形態は情報処理用方法及び装置を提供する。
第1態様において、本開示の実施形態は、情報処理用方法であって、取得された命令の命令オペコードに基づき、レジスタ選択情報、ベースアドレス情報及び読み取り対象データ長を含む専用命令を含む前記命令の命令タイプを確定することと、上記命令が専用命令であると判定されたことに応答し、上記専用命令を事前設置された演算装置に送信し、上記演算装置は、上記レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとすることと、上記ベースアドレス情報及び上記読み取り対象データ長に基づき、上記目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出すことと、上記コンフィギュレーション情報に対して事前設定された演算を実行することと、を含む演算ステップを実行することと、を備える情報処理用方法を提供する。
いくつかの実施形態において、命令タイプにはさらに、事前設置されたレジスタセットからレジスタを確定するための第1のレジスタ確定情報、第2のレジスタ確定情報及び第3のレジスタ確定情報を含む汎用命令が含まれ、上記方法はさらに、上記命令が汎用命令であると判定されたことに応答し、上記第1のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第1のオペランドとすることと、上記第2のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第2のオペランドとすることと、上記第1のオペランドおよび上記第2のオペランドに対して事前設定された操作を行って操作結果を取得することと、上記操作結果を上記第3のレジスタにより確定されたレジスタに格納することとを備える操作ステップを実行することを備える。
いくつかの実施形態において、命令を取得する前に、上記方法はさらに、事前設定されたコンフィギュレーション情報を事前設置されたメモリに記憶する。
いくつかの実施形態において、上記方法はさらに、DMAコントローラの、転送対象データを示すためのデータ転送コンフィギュレーション情報を設定することと、起動命令を上記DMAコントローラに送信することであって、それによって、上記DMAコントローラが起動命令を受信した後、上記データ転送コンフィギュレーション情報に基づいて上記メモリに記憶されたコンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送するデータ転送ステップを実行する、こととを、備える。
いくつかの実施形態において、上記データ転送コンフィギュレーション情報に基づいて上記メモリに記憶されたコンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送することは、上記コンフィギュレーションレジスタセットの状態を確定することと、確定された状態に基づいて上記メモリからコンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送することと、を備える。
第1態様において、本開示の実施形態は、情報処理用装置であって、取得された命令の命令オペコードに基づき、レジスタ選択情報、ベースアドレス情報及び読み取り対象データ長を含む専用命令を含む上記命令の命令タイプを確定するように構成される確定手段と、上記命令が専用命令であると判定されたことに応答し、上記専用命令を事前設置された演算装置に送信し、それによって、上記演算装置は、上記レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとすることと、上記ベースアドレス情報及び上記読み取り対象データ長に基づき、上記目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出すことと、上記コンフィギュレーション情報に対して事前設定された演算を実行することと、を含む演算ステップを実行するように構成される演算手段と、を備える情報処理用装置を提供する。
いくつかの実施形態において、命令タイプにはさらに汎用命令が含まれ、汎用命令は事前設置されたレジスタセットからレジスタを確定するための第1のレジスタ確定情報、第2のレジスタ確定情報及び第3のレジスタ確定情報を含み、上記装置はさらに、上記命令が汎用命令であると判定されたことに応答し、上記第1のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第1のオペランドとすることと、上記第2のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第2のオペランドとすることと、上記第1のオペランドおよび上記第2のオペランドに対して事前設定された操作を行って操作結果を取得することと、上記操作結果を上記第3のレジスタにより確定されたレジスタに格納することとを備える操作ステップを実行するように構成される操作手段を備える。
いくつかの実施形態において、上記装置は、事前設定されたコンフィギュレーション情報を事前設置されたメモリに記憶するように構成される記憶手段をさらに備える。
いくつかの実施形態において、上記装置はさらに、DMAコントローラの、転送対象データを示すためのデータ転送コンフィギュレーション情報を設定するように構成される設定手段と、起動命令を上記DMAコントローラに送信するように構成される起動手段であって、それによって、上記DMAコントローラが起動命令を受信した後、事前設定されたデータ転送ステップを実行する、起動手段と、を備え、上記DMAコントローラは、上記データ転送コンフィギュレーション情報に基づいて上記メモリに記憶されたコンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送するように構成される転送手段を備える。
いくつかの実施形態において、上記転送手段はさらに、上記コンフィギュレーションレジスタセットの状態を確定することと、確定された状態に基づいて上記メモリから上記コンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送することと、を実行するように構成される。
第3態様において、本開示の実施形態は、1つまたは複数のプロセッサと、1つまたは複数のプログラムが記憶される記憶装置と、を備える端末であって、上記1つまたは複数のプログラムが上記1つまたは複数のプロセッサによって実行される場合、上記1つまたは複数のプロセッサに第1態様のいずれかの実現形態に記載の方法を実現させる端末を提供する。
第4態様において、本開示の実施形態は、コンピュータプログラムが記憶されるコンピュータ可読媒体であって、上記プログラムがプロセッサによって実行される時、第1態様のいずれかの実現形態に記載の方法を実現するコンピュータ可読媒体を提供する。
本開示の実施形態により提供される情報処理用方法および装置は、取得された命令の命令オペコードに基づき、命令の命令タイプを確定する。命令が専用命令であると判定されたことに応答し、演算装置により演算ステップを実行するために供する専用命令を演算装置に送信する。演算ステップは、まず、レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとする。次に、ベースアドレス情報及び読み取り対象データ長に基づき、目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出す。最後に、コンフィギュレーション情報に対して事前設定された演算を実行する。それによって、縮小命令セットプロセッサアーキテクチャにおいて専用命令を拡張する問題を解決した。
以下の図面を参照してなされる非限定的な実施形態に対する詳細な説明により、本出願の他の特徴、目的及び利点がより明らかになる。
本開示の実施形態を適用可能な例示的なシステムアーキテクチャである。 本開示に係る、情報処理用方法の一実施形態のフローチャートである。 本開示の実施形態の実現に適する、情報処理用方法のハードウェア部分の概略図である。 本開示に係る情報処理用方法の応用シナリオの概略図である。 本開示に係る情報処理用方法の更なる実施形態のフローチャートである。 本開示に係る情報処理用装置の一実施形態の構造概略図である。 本開示の実施形態を実現するための端末装置に適するコンピュータシステムの構成概略図である。
以下は図面及び実施形態を参照して本開示をさらに詳細に説明する。本明細書で説明される具体的な実施形態は、関連発明を説明するためにのみ使用され、その発明を限定するものではないことを理解されたい。なお、説明の便宜上、図面は関連発明に係る部分のみを示している。
なお、矛盾が生じない状況で本開示の実施形態及び実施形態における特徴は、互いに組み合わせることができる。以下は図面を参照しながら実施形態を踏まえて本開示をさらに詳細に説明する。
図1は本開示の実施形態を適用可能な、情報処理用方法又は情報処理用装置のシステムアーキテクチャ100の例示である。
図1に示すように、システムアーキテクチャ100は端末装置101、102、103、ネットワーク104及びサーバ105を含むことができる。ネットワーク104は、端末装置101、102、103とサーバ装置105との間で通信リンクの媒体を提供するためのものである。ネットワーク104は、有線、無線通信リンク又は光ファイバケーブル等の様々な接続タイプを含むことができる。
ユーザは、端末装置101、102、103を用いて、ネットワーク104を介してサーバ105と情報のやり取りを行うことができる。端末装置101、102、103には様々な通信クライアントアプリケーション、例えばプレイアプリケーション、検索アプリケーション、画像処理アプリケーション、インスタントメッセージングツール、ソーシャルプラットフォームソフトウェアなどがインストールされ得る。
端末装置101、102、103は、ハードウェアであってもよいし、ソフトウェアであってもよい。端末装置101、102、103がハードウェアである場合、RISCプロセッサ及び演算装置を有する様々な電子機器であってもよく、それはスマートフォン、タブレットコンピュータ、スマートスピーカ、車載音声装置などを含むが、これらに限定されるものではない。端末装置101、102、103がソフトウェアである場合、上述した電子機器にインストルされることができる。それは複数のソフトウェア又はソフトウェアモジュール(例えば分散サービスを提供するために用いられる)として実現されることができ、単一のソフトウェア又はソフトウェアモジュールとして実現されることもできる。ここでは特に限定しない。
サーバ105は各種のサービスを提供するサーバであってもよく、例えば端末装置101、102、103に表示された情報に対してサポートを提供するサーバである。バックグラウンドサーバは、受信したリクエスト等のデータに対して解析等の処理を行い、処理結果を端末装置101、102、103にフィードバックすることができる。
なお、サーバ105は、ハードウェアであってもよいし、ソフトウェアであってもよい。サーバ105がハードウェアである場合、複数のサーバで構成される分散サーバクラスタとして実現されてもよいし、単一のサーバとして実現されてもよい。サーバ105がソフトウェアである場合、複数のソフトウェア又はソフトウェアモジュール(例えば分散サービスを提供するために用いられる)として実現されることができ、単一のソフトウェア又はソフトウェアモジュールとして実現されることもできる。ここでは特に限定しない。
なお、本開示の実施形態により提供される情報処理用方法は一般的に、端末装置101、102、103によって実行され、それによって、情報処理用装置は一般的に、端末装置101、102、103に設置される。図1における端末装置、ネットワーク及びサーバの数は例示のみであることを理解されたい。また、実現の需要に基づいて任意の数の端末装置、ネットワーク、サーバ等を備えることができる。
次に、本開示に係る、情報処理用方法の一実施形態の流れ200を示す図2を参照する。該情報処理用方法は、以下のステップを含む。
ステップ201では、取得された命令の命令オペコードに基づいて命令の命令タイプを確定する。
本実施形態において、情報処理用方法の実行主体(例えば、図1に示す端末装置101、102、103)は、CPUと、演算装置とを備えることができる。ここで、CPUはRISCプロセッサであってもよい。RISCは、タイプが少ないコンピュータ命令を実行するマイクロプロセッサである。RISCにおいて、コンピュータは各マシンサイクルにおいて命令を実行することができ、簡単又は複雑な操作を問わず、簡単な命令のプログラムブロックで完成することができる。一般的には、各命令それぞれは該命令がどのような性質の操作を実行するかを示す1つのオペコードを備え、異なる命令はオペコードのフィールドの異なるコードで示される。したがって、実行主体は、取得された命令の命令オペコードに基づき、取得された命令の命令タイプを確定することができる。ここで、命令タイプには、汎用命令と専用命令が含まれることができる。
コンピュータにおいて、コンピュータのハードウェアが何らかの演算、処理機能を実行することを指示するコマンドは、命令と呼ばれる。命令はコンピュータにより実行される最小の機能単位であり、ハードウェアの作用は各命令により規定された機能を完成することである。1台のコンピュータにおける全ての命令の集合は、このコンピュータの命令システムである。命令システムは命令セットとも呼ばれ、このコンピュータの全ての機能の具現化である。RISCおよびCISCは、CPUが命令セットの特性に基づいて区別される2つのタイプである。実際の状況で、各型番のCPUは設計された時にそのハードウェア回路に対応する一連の命令を規定した。ここで、汎用命令とは、実行主体のCPUのハードウェア回路に対応する命令であってもよい。専用命令とは、実行主体の演算装置のハードウェア回路に対応する命令であってもよい。ここで、演算装置は、実際の応用シナリオに基づいて増設されるAIアクセラレータであってもよい。
次に、図3を参照されたい。その上半分のブロックに示すのは標準的な5段階のパイプラインRISCプロセッサの論理ブロック図である。ここで、パイプラインの5段階はそれぞれ、フェッチ段階、デコード段階、実行段階、メモリアクセス段階、ライトバック段階である。フェッチ段階は取得された命令をデコード段階に送信し、デコード段階は命令フォーマットにおける情報に基づいてレジスタセットにおけるデータを読み出して実行段階に送信し、実行段階はデータに対して演算処理を実行した後に演算結果をライトバック段階に送信し、ライトバック段階は複数の実行段階の演算結果から優先度に基づいて1つを選択してレジスタセットに書き戻す。5段階のパイプラインRISCプロセッサは現在幅広く研究されて応用された公知技術であるので、図3の上半分のブロックにおけるデコード手段、データ関連のスコアボード、算術論理手段等の部分の機能について説明を省略することを理解されたい。
図3の下半分のブロックに示すのは演算装置がデコード段階と実行段階の2段階で増加されたハードウェア手段とレジスタセットを示している。ここで、ハードウェア手段は演算装置、コンフィギュレーションローダ等を備えることができ、レジスタセットは演算レジスタセット及びコンフィギュレーションレジスタセットを備えることができる。ここで、コンフィギュレーションレジスタセットは、特殊な構成、すなわち、複数のコンフィギュレーションレジスタセットが共存している構成(複数のレジスタセットが共存している実施形態は、アドレスによるアクセス可能な形態であってもよいし、先入れ先出しのアクセス形態であってもよい)を有することができる。コンフィギュレーションレジスタセットの内容は、セレクタを介して実行段階の演算装置に送信されることができる。具体的には、どのレジスタセットの内容を選択することは、コンフィギュレーションローダによりデコード段階から送信された命令情報に基づいて選択される。
図3の下方のブロック外の部分は、RISCプロセッサ以外の付加回路である。ここで、DMA(Direct Memory Access)コントローラはアクセラレータのコンフィギュレーション情報をコンフィギュレーションレジスタセットにバッチロードすることを担当する。また、コンフィギュレーションレジスタセットの数が制限されているが、オンチップメモリはコンフィギュレーションレジスタセットの数を大幅に超えるコンフィギュレーション情報を格納できる。従って、コンフィギュレーション情報組の数が非常に多い場合には、一部のコンフィギュレーション情報組のみがコンフィギュレーションレジスタセットにロードされることができ、後続のコンフィギュレーション情報組について、DMAコントローラが演算手段のコンフィギュレーション情報組の消費速度に基づいて徐々にロードされる必要がある。なお、DMAコントローラの操作情報、すなわち、コンフィギュレーション情報組がオンチップメモリに記憶されるアドレスとセットの数は、RISCプロセッサによって事前設置されることができる。RISCプロセッサはDMAコントローラを起動した後、DMAコントローラはRISCプロセッサから独立して稼働することができ、RISCプロセッサの介入を必要としない。
実際の状況で、RISC命令はハードウェアによるデコードの便利のため、固定長の命令フォーマットを採用し、例えば、32ビット、64ビットなどを採用する。ここで、汎用命令と専用命令の長さは等しくなってもよく、いずれも固定長であり得る。例示として、本実施形態における命令は、32ビットの命令であってもよい。ここで、命令における第0〜6ビットは命令オペコードを表すことができ、命令オペコードは汎用命令と専用命令を区別するために使用されることができる。専用命令はレジスタ選択情報、ベースアドレス情報及び読み取り対象データ長を含むことができる。例示として、命令が専用命令である場合、32ビットにおける第7〜11ビットは複数のレジスタセットにおける1つのレジスタセットを選択するためのレジスタ選択情報であってもよいし、アドレスによるアクセス可能な実施形態におけるアドレス部分のためのものであってもよく、32ビットにおける15〜19ビットは、ベースアドレス情報であってもよく、特定のコンフィギュレーションレジスタセットのベースアドレスを識別するために使用でき、32ビットにおける第20〜24ビットは読み取り対象データ長であってもよく、特定のコンフィギュレーションレジスタセットにおける、読み取り必要があるバイト長さを識別するために使用されてもよい。
本実施形態のいくつかの選択可能な実施形態では、命令を取得する前に、上記の、情報処理用方法はさらに、事前設定されたコンフィギュレーション情報を事前設置されたメモリに記憶することを備えることができる。
本実施形態において、実行主体は事前設定されたコンフィギュレーション情報を事前設置されたメモリに記憶することができる。例示として、上記事前設置されたメモリはRISCプロセッサ以外のオンチップメモリであってもよい。例示として、RISCプロセッサは初期化の段階で、複数組のコンフィギュレーション情報をオンチップメモリに設定することができ、ここで、1組のコンフィギュレーション情報は演算装置の1回の実行に要する情報であってもよい。
いくつかの選択可能な実施形態において、上記情報処理用方法はさらに、次のことを含むことができる。まず、DMAコントローラのデータ転送コンフィギュレーション情報を設定する。
本実施形態において、実行主体はDMAコントローラのデータ転送コンフィギュレーション情報を設定することができる。ここで、上記データ転送コンフィギュレーション情報は、転送対象データを示すためのものであってもよい。例えば、データ転送コンフィギュレーション情報は、ベースアドレスと転送バイト長さを含むことができる。例示として、起動段階に、RISCプロセッサは、DMAコントローラのベースアドレスと転送バイト長さを設定することができる。
続いて、DMAコントローラに起動命令を送信し、それによって、DMAコントローラが起動命令を受信した後に、データ転送コンフィギュレーション情報に基づいてメモリに記憶されたコンフィギュレーション情報をコンフィギュレーションレジスタセットに転送するデータ転送ステップを実行する。
本実施形態において、RISCプロセッサはDMAコントローラに起動命令を送信でき、それによって、DMAコントローラは起動命令を受信した後に、データ転送コンフィギュレーション情報に基づき、メモリに記憶されたコンフィギュレーション情報をコンフィギュレーションレジスタセットに転送するデータ転送ステップを実行できる。
実際の状況では、端末側AI推論の実行過程において、ニューラルネットワーク推論演算に必要なパラメータ情報等は事前取得されることができ、演算開始前に既に固定され、ウエイト値及びニューラルネットワークの各層のコンフィギュレーション情報によって示される。この原理に基づき、演算装置の起動前に、ニューラルネットワークの各層の計算に必要なコンフィギュレーション情報をバッチロードし、演算装置の稼働中にコンフィギュレーション情報をロードする時間を節約できる。また、DMAコントローラはRISCプロセッサから独立して動作することができるため、RISCプロセッサによる演算と、DMAコントローラによるコンフィギュレーション情報組の転送が並列に実行することができ、さらに、演算時間がいっそう節約され、演算効率が向上された。
または、データ転送コンフィギュレーション情報に基づき、メモリに記憶されたコンフィギュレーション情報をコンフィギュレーションレジスタセットに転送することは、具体的には以下のとおりに実行できる。まず、コンフィギュレーションレジスタセットの状態を確定する。
本実施形態では、DMAコントローラが起動した後、まず、複数のコンフィギュレーションレジスタセットの状態を確定し、コンフィギュレーションレジスタセットの状態が全負荷ではないか否かを判定することができる。例示として、DMAコントローラは、コンフィギュレーションローダの読み出しポインタと自己の書き込みポインタとの関係に基づき、コンフィギュレーションレジスタセットの状態が全負荷ではないか否かを判断することができる。ここで、状態は全負荷ではないとは、コンフィギュレーションレジスタセットに余剰スペースがあり、コンフィギュレーションレジスタセットへのデータ転送が可能であることを示す。そうでなければ、コンフィギュレーションレジスタセットに余剰スペースがなく、コンフィギュレーションレジスタセットにデータを転送することができないことを示す。
そして、確定された状態に基づいてコンフィギュレーション情報をメモリからコンフィギュレーションレジスタセットに転送する。
本実施形態では、DMAコントローラは、確定されたコンフィギュレーションレジスタセットの状態に基づいて、コンフィギュレーション情報をメモリからコンフィギュレーションレジスタセットに転送する。例えば、DMAコントローラは、コンフィギュレーションレジスタセットの状態が全負荷ではない場合に、コンフィギュレーション情報をメモリからコンフィギュレーションレジスタセットに転送することができる。そうでなければ、DMAコントローラは待機し、コンフィギュレーションレジスタセットの状態が全負荷ではないと判定されるまでに、コンフィギュレーションローダの読み出しポインタの変化をリアルタイムにクエリする。
ステップ202では、命令が専用命令であると判定されたことに応答し、演算装置により以下の演算ステップ2021〜2023を実行するために供する専用命令を事前設置された演算装置に送信する。
本実施形態において、取得された命令が専用命令であると判定された場合、実行主体は演算装置により以下の演算ステップ2021〜2023を実行するために供する該専用命令を演算装置に送信することができる。
ステップ2021では、レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとする。
本実施形態において、演算装置は専用命令を受信した後、専用命令におけるレジスタ選択情報に基づいて事前設置された複数のコンフィギュレーションレジスタセットから1つのレジスタセットを選択して目標コンフィギュレーションレジスタセットとする。例えば、デコード段階では、デコード手段が命令オペコードを解析し、命令が専用命令であると判定された場合、専用命令におけるレジスタ選択情報を実行段階のコンフィギュレーションローダに送信し、コンフィギュレーションローダがレジスタ選択情報に基づいて複数のコンフィギュレーションレジスタセットから1つのコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとする。
ステップ2022では、ベースアドレス情報及び読み取り対象データ長に基づき、目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み取る。
本実施形態において、演算装置は目標コンフィギュレーションレジスタセットを確定した後に、専用命令におけるベースアドレス情報及び読み取り対象データ長に基づき、目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出すことができる。例えば、演算装置におけるコンフィギュレーションローダは、目標コンフィギュレーションレジスタセットを確定した後、目標コンフィギュレーションレジスタセットのベースアドレス情報により指定されたベースアドレスから、読み取り対象データ長により指定された長さのコンフィギュレーション情報を演算装置に読み出すことができる。例示として、コンフィギュレーション情報は、演算レジスタセットにおけるレジスタアドレス、RISCプロセッサのレジスタセットにおけるレジスタアドレス、演算装置によるニューラルネットワーク推論演算に必要なパラメータ情報等の一連の情報を含むが、これらに限定されるものではない。これらのコンフィギュレーション情報の長さは、RISC命令の32ビットに格納可能な内容をはるかに超えている。
ステップ2023では、コンフィギュレーション情報に対して、事前設定された演算を実行する。
本実施形態において、演算装置はステップ2022で取得されたコンフィギュレーション情報を用いて、事前設定された演算を実行することができる。ここで、事前設定された演算とは、取得された専用命令により指示されて実行する演算であってもよい。演算装置の演算手段は、例えば、ステップ2022で取得されたコンフィギュレーション情報を用いて、専用命令により指示された演算を完成し、演算結果を取得することができる。その後、演算手段は、演算結果を演算レジスタセットまたはRISCプロセッサのレジスタセットに書き戻すことができる。
続いて、本実施形態に係る情報処理用方法の応用シナリオの概略図である図4を参照する。図4の応用シナリオにおいて、端末装置のRISCプロセッサ401は、取得された命令の命令オペコードに基づき、命令の命令タイプを確定する。命令が専用命令であると判定された場合、RISCプロセッサは、演算装置402は以下の演算ステップを実行するために供する専用命令を事前設置された演算装置402に送信する。演算ステップでは、レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとし、次に、ベースアドレス情報及び読み取り対象データ長に基づき、目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出し、最後に、コンフィギュレーション情報に対して事前設定された演算を実行する。
本開示の上記実施形態により提供される方法は演算装置を用いて専用命令を処理し、それによって、縮小命令セットプロセッサアーキテクチャにおける専用命令の拡張の問題を解決する。
さらに、情報処理用方法の更なる実施形態の流れ500を示す図5を参照する。該情報処理用方法の流れ500は以下のステップを含む。
ステップ501では、取得された命令の命令オペコードに基づき、命令の命令タイプを確定する。
本実施形態において、ステップ501は図2に示す実施形態のステップ201と同様であり、ここでは説明を省略する。
ステップ502では、命令が専用命令であると判定されたことに応答し、演算装置により以下の演算ステップ5021〜5023を実行するために供する専用命令を事前設置された演算装置に送信する。
本実施形態において、取得された命令が専用命令であると判定された場合、実行主体は、演算装置により以下の演算ステップ5021〜5023を実行するために供する専用命令を演算装置に送信する。
ステップ5021では、レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとする。
本実施形態において、ステップ5021は、図2に示す実施形態のステップ2021と同様であり、ここでは説明を省略する。
ステップ5022では、ベースアドレス情報及び読み取り対象データ長に基づき、目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み取る。
本実施形態において、ステップ5022は図2に示す実施形態のステップ2022と同様であり、ここでは説明を省略する。
ステップ5023では、コンフィギュレーション情報に対して、事前設定された演算を実行する。
本実施形態において、ステップ5023は図2に示す実施形態のステップ2023と同様であり、ここでは説明を省略する。
ステップ503では、命令が汎用命令であると判定されたことに応答し、操作ステップ5031〜5034を実行する。
本実施形態において、命令タイプはさらに汎用命令を含むことができる。汎用命令は事前設置されたレジスタセットからレジスタを確定するための第1のレジスタ確定情報、第2のレジスタ確定情報及び第3のレジスタ確定情報を含むことができる。例示として、命令が汎用命令である場合、32ビットのうちの第7〜11ビットは、レジスタセットにおける1つのレジスタを選択するために用いられることができ、該レジスタは命令演算結果を格納するために使用されることができる。32ビットのうちの第15〜19ビットは、レジスタセットにおける1つのレジスタを選択するために用いられることができ、該レジスタは命令演算オペランド1を格納するために用いられることができる。32ビットのうちの第20〜24ビットは、レジスタセットにおける1つのレジスタを選択するために使用されることができ、該レジスタは命令演算オペランド2を格納するために使用されることができる。
ここで、実行主体は、取得された命令が汎用命令であると判定された場合に、以下の操作ステップ5031〜5034を実行することができる。
ステップ5031では、第1のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第1オペランドとする。
本実施形態では、実行主体は、第1のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第1オペランドとすることができる。
ステップ5032では、第2レジスタ確定情報によって確定されたレジスタにおけるデータを取得して第2オペランドとする。
本実施形態において、実行主体は、第2のレジスタ確定情報により確定されたレジスタにおけるデータを取得し、第2オペランドとすることができる。
ステップ5033では、第1オペランド及び第2オペランドに対して事前設定された操作を実行して、操作結果を取得する。
本実施形態において、実行主体は、第1オペランドおよび第2オペランドに対して事前設定された操作を実行することができる。ここで、事前設定された操作とは、取得された汎用命令により指示されて実行する操作であってもよい。
ステップ5034では、操作結果を第3のレジスタにより確定されたレジスタに記憶する。
本実施形態において、実行主体は、ステップ5033で取得された操作結果を、第3のレジスタにより確定されたレジスタに格納することができる。
図5から分かるように、図2に対応する実施形態と比べて、本実施形態における情報処理用方法の流れ500は、命令が汎用命令である場合、汎用命令に対する処理を強調した。従って、本実施形態で説明した技術手段は、異なる命令タイプに対して異なるステップを実行することができ、それによって、汎用命令と専用命令に対する処理を実現した。
さらに、図6を参照し、上記各図に示される方法に対する実現として本開示は情報処理用装置の一実施形態を提供し、該装置の実施形態は図2に示される方法の実施形態に対応し、該装置は具体的に様々な電子機器に適用することができる。
図6に示すように、本実施形態の情報処理用装置600は、確定手段601と演算手段602を備える。ここで、確定手段601は、取得された命令の命令オペコードに基づき、上記命令の、レジスタ選択情報、ベースアドレス情報及び読み取り対象データ長を含む専用命令を含む命令タイプを確定するように構成され、演算手段602は、上記命令が専用命令であると判定されたことに応答し、上記専用命令を事前設置された演算装置に送信し、それによって、上記演算装置は、上記レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとすることと、上記ベースアドレス情報及び上記読み取り対象データ長に基づき、上記目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出すことと、上記コンフィギュレーション情報に対して事前設定された演算を実行することと、を備える演算ステップを実行するように構成される。
本実施形態において、情報処理用装置600の確定手段601及び演算手段602の具体的な処理及びそれによる技術的効果はそれぞれ図2に対応する実施形態におけるステップ201及びステップ202の関連説明を参照することができるので、ここで説明を省略する。
本実施形態のいくつかの選択可能な実施形態では、命令タイプはさらに汎用命令を含み、汎用命令は事前設置されたレジスタセットからレジスタを確定するための第1のレジスタ確定情報、第2のレジスタ確定情報及び第3のレジスタ確定情報を含み、上記装置600はさらに、上記命令が汎用命令であると判定されたことに応答し、上記第1のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第1オペランドとするステップと、上記第2のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第2オペランドとするステップと、上記第1オペランドおよび上記第2オペランドに対して事前設定された操作を行って操作結果を取得するステップと、上記操作結果を上記第3のレジスタにより確定されたレジスタに格納するステップとを含む操作ステップを実行するように構成される操作手段(図示せず)を備える。
本実施形態のいくつかの選択可能な実施形態では、上記装置600はさらに、事前設定されたコンフィギュレーション情報を事前設置されたメモリに記憶するように構成される記憶手段(図示せず)を備える。
本実施形態のいくつかの選択可能な実施形態では、上記装置600はさらに、上記DMAコントローラの、転送対象データを指示するためのデータ転送コンフィギュレーション情報を配置するように構成される配置手段(図示せず)と、起動命令を上記DMAコントローラに送信するように構成され、それによって、上記DMAコントローラが起動命令を受信した後、事前設置されたデータ転送ステップを実行する起動手段(図示せず)と、を備え、上記DMAコントローラは、上記データ転送コンフィギュレーション情報に基づいて上記メモリに記憶されたコンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送する転送手段を含む。
本実施形態のいくつかの実施形態では、上記転送手段はさらに、上記コンフィギュレーションレジスタセットの状態を確定することと、確定された状態に基づいて、上記メモリからコンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送することとを実行するように構成される。
次に、本開示の実施形態に係る電子機器(例えば図1の端末装置)700の構造概略図を示す図7を参照する。なお、図7に示した端末装置は例示であり、本開示の実施形態の機能や利用範囲を制限するものではない。
図7に示すように、電子機器700は、ROM(Read Only Memory)702に格納されたプログラムや、記憶装置708からRAM(Random Access Memory)703にロードされたプログラムに基づき、各種の適当な動作や処理を実行することができる処理装置(例えば、中央処理装置、グラフィックプロセッサ、演算装置等)701を備える。RAM703には、電子機器700の操作に必要な各種プログラムやデータが記憶される。処理装置701、ROM702、RAM703は、バス704を介して相互に接続されている。バス704には、入出力(I/O)インタフェース705も接続されている。
I/Oインタフェース705には、一般的には、入力装置706、出力装置707、記憶装置708、通信装置709が接続されることができ、入力装置706は例えばタッチパネル、タッチパッド、キーボード、マウス、カメラ、マイク、加速度計、ジャイロスコープなどを含み、出力装置707は、例えば、LCD(Liquid Crystal Display)、スピーカ、バイブレータなどを含み、記憶装置708は例えば、磁気テープ、ハードディスクなどを含む。通信装置709は、データを交換するために、電子機器700が他の装置と無線又は有線通信を行うことを可能にすることができる。なお、図7は、各種の装置を備えた電子機器700を示したが、図示した全ての装置を実施又は備えることが要求されていないことを理解されたい。代替的に、より多く又はより少ない装置を実施又は備えることができる。図7に示す各ブロックは、1つの装置を表してもよく、必要に応じて複数の装置を代表してもよい。
特に、本開示の実施形態に基づき、上述のフローチャートを参照して説明したプロセスは、コンピュータソフトウェアプログラムとして実現されることが可能である。例えば、本開示の実施形態は、フローチャートに示された方法を実行するためのプログラムコードを含む、コンピュータ可読媒体上に担持されたコンピュータプログラム製品を含む。このような実施形態では、コンピュータプログラムは、通信装置709を介してネットワークからダウンロードされインストールされたり、記憶装置708からインストールされたり、RОM702からインストールされたりすることができる。このコンピュータプログラムが処理装置701によって実行されると、本開示の実施形態の方法に限定された上記機能が実行される。
なお、本開示の実施形態で説明したコンピュータ可読媒体は、コンピュータ可読信号媒体若しくはコンピュータ可読記憶媒体、又は上記両者の任意の組み合わせであり得る。コンピュータ可読記憶媒体は、例えば、電気、磁気、光、電磁気、赤外線、又は半導体のシステム、装置若しくはデバイス、又は以上の任意の組み合わせであり得るが、これらに限られない。コンピュータ可読記憶媒体のより具体的な例は、1本又は複数本のリード線を有する電気的に接続された携帯型コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(RОM)、消去可能プログラマブル読取り専用メモリ(EPRОM又はフラッシュメモリ)、光ファイバ、携帯型コンパクトディスク読取り専用メモリ(CD−RОM)、光記憶装置、磁気記憶装置、又は上記の任意の適切な組み合わせを含むが、これらに限られない。本開示の実施形態では、コンピュータ可読記憶媒体は、命令実行システム、装置又はデバイスによって使用されることもそれらに結合して使用されることも可能なプログラムを含む又は記憶する任意の有形の媒体であり得る。本開示の実施形態では、コンピュータ可読信号媒体は、ベースバンド内において又はキャリアの一部として伝播された、コンピュータ可読プログラムコードを搬送しているデータ信号を含んでもよい。このような伝播されたデータ信号は、電磁信号、光信号、又は上述の任意の適切な組み合わせを含むが、これらに限られない様々な形態を採用することができる。コンピュータ可読信号媒体はまた、コンピュータ可読記憶媒体以外の任意のコンピュータ可読媒体であってもよい。このコンピュータ可読信号媒体は、命令実行システム、装置又はデバイスによって使用されることもそれらに結合して使用されることも可能なプログラムを送信、伝播又は伝送することができる。コンピュータ可読媒体に含まれているプログラムコードは、電線、光ケーブル、RF(無線周波数)など、又は上記の任意の適切な組み合わせを含むが、これらに限られない任意の適切な媒体で伝送することができる。
上記コンピュータ可読媒体は前記電子機器に含まれるものであってもよく、個別に存在しており、該電子機器に組み込まれていないものであってもよい。前記コンピュータ可読媒体は、1つ又は複数のプログラムを搬送しており、前記1つ又は複数のプログラムが該電子機器によって実行されると、該電子機器は、取得された命令の命令オペコードに基づき、上記命令の、レジスタ選択情報、ベースアドレス情報及び読み取り対象データ長を含む専用命令を含む命令タイプを確定することと、上記命令が専用命令であると判定されたことに応答し、上記専用命令を事前設置された演算装置に送信し、それによって、上記演算装置は、上記レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとすることと、上記ベースアドレス情報及び上記読み取り対象データ長に基づき、上記目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出すことと、上記コンフィギュレーション情報に対して事前設定された演算を実行することと、を備える演算ステップを実行する。
本開示の実施形態の動作を実行するためのコンピュータプログラムコードは、1つ又は複数のプログラミング言語、又はそれらの組み合わせで書くことができる。プログラミング言語は、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語や、「C」言語又は類似するプログラミング言語などの従来の手続き型プログラミング言語を含む。プログラムコードは、完全にユーザのコンピュータ上で実行されることも、部分的にユーザのコンピュータ上で実行されることも、スタンドアロンソフトウェアパッケージとして実行されることも、部分的にユーザのコンピュータ上で実行されながら部分的にリモートコンピュータ上で実行されることも、又は完全にリモートコンピュータ又はサーバ上で実行されることも可能である。リモートコンピュータの場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されることができる。又は、外部のコンピュータに接続されることができる(例えば、インターネットサービスプロバイダーによるインターネット経由で接続される)。
添付図面におけるフローチャート及びブロック図は、本開示の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の実施可能なアーキテクチャ、機能、及び動作を示している。ここで、フローチャート又はブロック図における各ブロックは、モジュール、プログラムセグメント、又はコードの一部を表すことができる。該モジュール、プログラムセグメント、又はコードの一部は、指定されたロジック関数を実施するための1つ又は複数の実行可能な命令を含む。また、いくつかの代替的な実施形態では、ブロックに記載されている機能は、図面に示されているものとは異なる順序で発生する場合があることにも留意されたい。例えば、連続して表されている2つのブロックは、実際にほぼ並行して実行されてもよく、時には逆の順序で実行されてもよい。これは関連する機能によって決まる。また、ブロック図及び/又はフローチャートにおける各ブロック、及びブロック図及び/又はフローチャートにおけるブロックの組み合わせは、指定された機能又は動作を実行する専用のハードウェアベースのシステムで実施することも、又は専用のハードウェアとコンピュータの命令の組み合わせで実施することも可能であることに留意されたい。
本開示の実施形態において説明された手段は、ソフトウェア又はハードウェアによって実施され得る。説明された手段はプロセッサに内蔵されてもよい。例えば、「確定手段と演算手段を備えるプロセッサ」と記載されてもよい。これらの手段の名称は、該手段その自体に対する限定ではなく、例えば、取得手段は、「取得された命令の命令オペコードに基づいて上記命令の命令タイプを確定する手段」と記載されてもよい。
上記の説明は、あくまでも本開示の好ましい実施形態及び応用技術原理の説明にすぎない。本開示に係る発明の範囲は、上記の技術的特徴の特定の組み合わせによって形成された技術的解決手段に限定されず、上記の発明の構想から逸脱しない範囲で上記の技術的特徴又はその同等の技術的特徴の任意の組み合わせによって形成されたその他の技術的解決手段、例えば、上記の特徴と本開示に開示された同様の機能を有する技術的特徴(それだけに限定されない)とが相互に代替することによって形成された技術的解決手段もカバーしていることを当業者は理解すべきである。
本開示の実施形態はコンピュータ技術分野に関し、具体的には情報処理用方法及び装置に関する。
縮小命令セットコンピュータ(Reduced Instruction Set Computer,RISC)は複雑命令セットコンピュータに対するものである。CISCは機械のハードウェア構造を増加させることによりコンピュータに対する益々高くなる性能要求を満たす。コンピュータ構造の発展は複雑性が益々高くなるプロセッサによって独占され、コンピュータ操作と高級言語の差を減少させることと機械の運転特性を改善することのため、機械語命令はますます多くなり、命令システムもますます複雑になる。特に比較的高速なCPU(central processing unit)と比較的低速なメモリの間で矛盾があり、データのアクセス回数をできるだけ減少し、機械の速度を向上させるため、複雑命令セットを大幅に発展させた。しかし、半導体プロセス技術の発展に伴い、メモリの速度が向上し続け、特に高速バッファの使用に伴い、コンピュータシステムの構造が根本的に変化する。ハードウェアプロセス技術の向上の一方、ソフトウェアも同様に重要な進展が発生し、最適化コンパイラが現れ、それによって、プログラムの実行時間ができるだけ低減され、機械語が占有するメモリ容量が最小になる。先端メモリ技術及び先端コンパイラプログラムを有する条件では、CISCアーキテクチャも適切なものではなく、RISCアーキテクチャが誕生した。RISC技術の基本的な出発点は機械語命令システムを簡略化することによりハードウェア設計の複雑度を低減し、命令の実行速度を向上させる。
端末側AI(Artificial Intelligence、人工知能)推論チップの設計において、RISC命令セットを採用する場合、チップ面積、コスト、消費電力を大幅に削減することができる。より強い製品競争力をもたらす。しかし、特定の応用分野に対して設計された端末側のAI推論チップについて、その応用シナリオ及び典型的な計算負荷は専用チップの特徴を有し、単純に汎用のRISC命令セットを採用すればその演算効率を向上させることは困難である。
本開示の実施形態は情報処理用方法及び装置を提供する。
第1態様において、本開示の実施形態は、情報処理用方法であって、取得された命令の命令オペコードに基づき、レジスタ選択情報、ベースアドレス情報及び読み取り対象データ長を含む専用命令を含む前記命令の命令タイプを確定することと、上記命令が専用命令であると判定されたことに応答し、上記専用命令を事前設置された演算装置に送信し、上記演算装置は、上記レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとすることと、上記ベースアドレス情報及び上記読み取り対象データ長に基づき、上記目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出すことと、上記コンフィギュレーション情報に対して事前設定された演算を実行することと、を含む演算ステップを実行することと、を備える情報処理用方法を提供する。
いくつかの実施形態において、命令タイプにはさらに、事前設置されたレジスタセットからレジスタを確定するための第1のレジスタ確定情報、第2のレジスタ確定情報及び第3のレジスタ確定情報を含む汎用命令が含まれ、上記方法はさらに、上記命令が汎用命令であると判定されたことに応答し、上記第1のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第1のオペランドとすることと、上記第2のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第2のオペランドとすることと、上記第1のオペランドおよび上記第2のオペランドに対して事前設定された操作を行って操作結果を取得することと、上記操作結果を上記第3のレジスタ確定情報により確定されたレジスタに格納することとを備える操作ステップを実行することを備える。
いくつかの実施形態において、命令を取得する前に、上記方法はさらに、事前設定されたコンフィギュレーション情報を事前設置されたメモリに記憶する。
いくつかの実施形態において、上記方法はさらに、DMAコントローラの、転送対象データを示すためのデータ転送コンフィギュレーション情報を設定することと、起動命令を上記DMAコントローラに送信することであって、それによって、上記DMAコントローラが起動命令を受信した後、上記データ転送コンフィギュレーション情報に基づいて上記メモリに記憶されたコンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送するデータ転送ステップを実行する、こととを、備える。
いくつかの実施形態において、上記データ転送コンフィギュレーション情報に基づいて上記メモリに記憶されたコンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送することは、上記コンフィギュレーションレジスタセットの状態を確定することと、確定された状態に基づいて上記メモリからコンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送することと、を備える。
第1態様において、本開示の実施形態は、情報処理用装置であって、取得された命令の命令オペコードに基づき、レジスタ選択情報、ベースアドレス情報及び読み取り対象データ長を含む専用命令を含む上記命令の命令タイプを確定するように構成される確定手段と、上記命令が専用命令であると判定されたことに応答し、上記専用命令を事前設置された演算装置に送信し、それによって、上記演算装置は、上記レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとすることと、上記ベースアドレス情報及び上記読み取り対象データ長に基づき、上記目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出すことと、上記コンフィギュレーション情報に対して事前設定された演算を実行することと、を含む演算ステップを実行するように構成される演算手段と、を備える情報処理用装置を提供する。
いくつかの実施形態において、命令タイプにはさらに汎用命令が含まれ、汎用命令は事前設置されたレジスタセットからレジスタを確定するための第1のレジスタ確定情報、第2のレジスタ確定情報及び第3のレジスタ確定情報を含み、上記装置はさらに、上記命令が汎用命令であると判定されたことに応答し、上記第1のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第1のオペランドとすることと、上記第2のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第2のオペランドとすることと、上記第1のオペランドおよび上記第2のオペランドに対して事前設定された操作を行って操作結果を取得することと、上記操作結果を上記第3のレジスタ確定情報により確定されたレジスタに格納することとを備える操作ステップを実行するように構成される操作手段を備える。
いくつかの実施形態において、上記装置は、事前設定されたコンフィギュレーション情報を事前設置されたメモリに記憶するように構成される記憶手段をさらに備える。
いくつかの実施形態において、上記装置はさらに、DMAコントローラの、転送対象データを示すためのデータ転送コンフィギュレーション情報を設定するように構成される設定手段と、起動命令を上記DMAコントローラに送信するように構成される起動手段であって、それによって、上記DMAコントローラが起動命令を受信した後、事前設定されたデータ転送ステップを実行する、起動手段と、を備え、上記DMAコントローラは、上記データ転送コンフィギュレーション情報に基づいて上記メモリに記憶されたコンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送するように構成される転送手段を備える。
いくつかの実施形態において、上記転送手段はさらに、上記コンフィギュレーションレジスタセットの状態を確定することと、確定された状態に基づいて上記メモリから上記コンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送することと、を実行するように構成される。
第3態様において、本開示の実施形態は、1つまたは複数のプロセッサと、1つまたは複数のプログラムが記憶される記憶装置と、を備える端末であって、上記1つまたは複数のプログラムが上記1つまたは複数のプロセッサによって実行される場合、上記1つまたは複数のプロセッサに第1態様のいずれかの実現形態に記載の方法を実現させる端末を提供する。
第4態様において、本開示の実施形態は、コンピュータプログラムが記憶されるコンピュータ可読媒体であって、上記プログラムがプロセッサによって実行される時、第1態様のいずれかの実現形態に記載の方法を実現するコンピュータ可読媒体を提供する。
第5態様において、本開示の実施形態は、コンピュータプログラムであって、前記コンピュータプログラムがプロセッサにより実行されると、第1態様のいずれかの実現形態に記載の方法を実現する、コンピュータプログラムを提供する。
本開示の実施形態により提供される情報処理用方法および装置は、取得された命令の命令オペコードに基づき、命令の命令タイプを確定する。命令が専用命令であると判定されたことに応答し、演算装置により演算ステップを実行するために供する専用命令を演算装置に送信する。演算ステップは、まず、レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとする。次に、ベースアドレス情報及び読み取り対象データ長に基づき、目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出す。最後に、コンフィギュレーション情報に対して事前設定された演算を実行する。それによって、縮小命令セットプロセッサアーキテクチャにおいて専用命令を拡張する問題を解決した。
以下の図面を参照してなされる非限定的な実施形態に対する詳細な説明により、本出願の他の特徴、目的及び利点がより明らかになる。
本開示の実施形態を適用可能な例示的なシステムアーキテクチャである。 本開示に係る、情報処理用方法の一実施形態のフローチャートである。 本開示の実施形態の実現に適する、情報処理用方法のハードウェア部分の概略図である。 本開示に係る情報処理用方法の応用シナリオの概略図である。 本開示に係る情報処理用方法の更なる実施形態のフローチャートである。 本開示に係る情報処理用装置の一実施形態の構造概略図である。 本開示の実施形態を実現するための端末装置に適するコンピュータシステムの構成概略図である。
以下は図面及び実施形態を参照して本開示をさらに詳細に説明する。本明細書で説明される具体的な実施形態は、関連発明を説明するためにのみ使用され、その発明を限定するものではないことを理解されたい。なお、説明の便宜上、図面は関連発明に係る部分のみを示している。
なお、矛盾が生じない状況で本開示の実施形態及び実施形態における特徴は、互いに組み合わせることができる。以下は図面を参照しながら実施形態を踏まえて本開示をさらに詳細に説明する。
図1は本開示の実施形態を適用可能な、情報処理用方法又は情報処理用装置のシステムアーキテクチャ100の例示である。
図1に示すように、システムアーキテクチャ100は端末装置101、102、103、ネットワーク104及びサーバ105を含むことができる。ネットワーク104は、端末装置101、102、103とサーバ装置105との間で通信リンクの媒体を提供するためのものである。ネットワーク104は、有線、無線通信リンク又は光ファイバケーブル等の様々な接続タイプを含むことができる。
ユーザは、端末装置101、102、103を用いて、ネットワーク104を介してサーバ105と情報のやり取りを行うことができる。端末装置101、102、103には様々な通信クライアントアプリケーション、例えばプレイアプリケーション、検索アプリケーション、画像処理アプリケーション、インスタントメッセージングツール、ソーシャルプラットフォームソフトウェアなどがインストールされ得る。
端末装置101、102、103は、ハードウェアであってもよいし、ソフトウェアであってもよい。端末装置101、102、103がハードウェアである場合、RISCプロセッサ及び演算装置を有する様々な電子機器であってもよく、それはスマートフォン、タブレットコンピュータ、スマートスピーカ、車載音声装置などを含むが、これらに限定されるものではない。端末装置101、102、103がソフトウェアである場合、上述した電子機器にインストルされることができる。それは複数のソフトウェア又はソフトウェアモジュール(例えば分散サービスを提供するために用いられる)として実現されることができ、単一のソフトウェア又はソフトウェアモジュールとして実現されることもできる。ここでは特に限定しない。
サーバ105は各種のサービスを提供するサーバであってもよく、例えば端末装置101、102、103に表示された情報に対してサポートを提供するサーバである。バックグラウンドサーバは、受信したリクエスト等のデータに対して解析等の処理を行い、処理結果を端末装置101、102、103にフィードバックすることができる。
なお、サーバ105は、ハードウェアであってもよいし、ソフトウェアであってもよい。サーバ105がハードウェアである場合、複数のサーバで構成される分散サーバクラスタとして実現されてもよいし、単一のサーバとして実現されてもよい。サーバ105がソフトウェアである場合、複数のソフトウェア又はソフトウェアモジュール(例えば分散サービスを提供するために用いられる)として実現されることができ、単一のソフトウェア又はソフトウェアモジュールとして実現されることもできる。ここでは特に限定しない。
なお、本開示の実施形態により提供される情報処理用方法は一般的に、端末装置101、102、103によって実行され、それによって、情報処理用装置は一般的に、端末装置101、102、103に設置される。図1における端末装置、ネットワーク及びサーバの数は例示のみであることを理解されたい。また、実現の需要に基づいて任意の数の端末装置、ネットワーク、サーバ等を備えることができる。
次に、本開示に係る、情報処理用方法の一実施形態の流れ200を示す図2を参照する。該情報処理用方法は、以下のステップを含む。
ステップ201では、取得された命令の命令オペコードに基づいて命令の命令タイプを確定する。
本実施形態において、情報処理用方法の実行主体(例えば、図1に示す端末装置101、102、103)は、CPUと、演算装置とを備えることができる。ここで、CPUはRISCプロセッサであってもよい。RISCは、タイプが少ないコンピュータ命令を実行するマイクロプロセッサである。RISCにおいて、コンピュータは各マシンサイクルにおいて命令を実行することができ、簡単又は複雑な操作を問わず、簡単な命令のプログラムブロックで完成することができる。一般的には、各命令それぞれは該命令がどのような性質の操作を実行するかを示す1つのオペコードを備え、異なる命令はオペコードのフィールドの異なるコードで示される。したがって、実行主体は、取得された命令の命令オペコードに基づき、取得された命令の命令タイプを確定することができる。ここで、命令タイプには、汎用命令と専用命令が含まれることができる。
コンピュータにおいて、コンピュータのハードウェアが何らかの演算、処理機能を実行することを指示するコマンドは、命令と呼ばれる。命令はコンピュータにより実行される最小の機能単位であり、ハードウェアの作用は各命令により規定された機能を完成することである。1台のコンピュータにおける全ての命令の集合は、このコンピュータの命令システムである。命令システムは命令セットとも呼ばれ、このコンピュータの全ての機能の具現化である。RISCおよびCISCは、CPUが命令セットの特性に基づいて区別される2つのタイプである。実際の状況で、各型番のCPUは設計された時にそのハードウェア回路に対応する一連の命令を規定した。ここで、汎用命令とは、実行主体のCPUのハードウェア回路に対応する命令であってもよい。専用命令とは、実行主体の演算装置のハードウェア回路に対応する命令であってもよい。ここで、演算装置は、実際の応用シナリオに基づいて増設されるAIアクセラレータであってもよい。
次に、図3を参照されたい。その上半分のブロックに示すのは標準的な5段階のパイプラインRISCプロセッサの論理ブロック図である。ここで、パイプラインの5段階はそれぞれ、フェッチ段階、デコード段階、実行段階、メモリアクセス段階、ライトバック段階である。フェッチ段階は取得された命令をデコード段階に送信し、デコード段階は命令フォーマットにおける情報に基づいてレジスタセットにおけるデータを読み出して実行段階に送信し、実行段階はデータに対して演算処理を実行した後に演算結果をライトバック段階に送信し、ライトバック段階は複数の実行段階の演算結果から優先度に基づいて1つを選択してレジスタセットに書き戻す。5段階のパイプラインRISCプロセッサは現在幅広く研究されて応用された公知技術であるので、図3の上半分のブロックにおけるデコード手段、データ関連のスコアボード、算術論理手段等の部分の機能について説明を省略することを理解されたい。
図3の下半分のブロックに示すのは演算装置がデコード段階と実行段階の2段階で増加されたハードウェア手段とレジスタセットを示している。ここで、ハードウェア手段は演算装置、コンフィギュレーションローダ等を備えることができ、レジスタセットは演算レジスタセット及びコンフィギュレーションレジスタセットを備えることができる。ここで、コンフィギュレーションレジスタセットは、特殊な構成、すなわち、複数のコンフィギュレーションレジスタセットが共存している構成(複数のレジスタセットが共存している実施形態は、アドレスによるアクセス可能な形態であってもよいし、先入れ先出しのアクセス形態であってもよい)を有することができる。コンフィギュレーションレジスタセットの内容は、セレクタを介して実行段階の演算装置に送信されることができる。具体的には、どのレジスタセットの内容を選択することは、コンフィギュレーションローダによりデコード段階から送信された命令情報に基づいて選択される。
図3の下方のブロック外の部分は、RISCプロセッサ以外の付加回路である。ここで、DMA(Direct Memory Access)コントローラはアクセラレータのコンフィギュレーション情報をコンフィギュレーションレジスタセットにバッチロードすることを担当する。また、コンフィギュレーションレジスタセットの数が制限されているが、オンチップメモリはコンフィギュレーションレジスタセットの数を大幅に超えるコンフィギュレーション情報を格納できる。従って、コンフィギュレーション情報組の数が非常に多い場合には、一部のコンフィギュレーション情報組のみがコンフィギュレーションレジスタセットにロードされることができ、後続のコンフィギュレーション情報組について、DMAコントローラが演算手段のコンフィギュレーション情報組の消費速度に基づいて徐々にロードされる必要がある。なお、DMAコントローラの操作情報、すなわち、コンフィギュレーション情報組がオンチップメモリに記憶されるアドレスとセットの数は、RISCプロセッサによって事前設置されることができる。RISCプロセッサはDMAコントローラを起動した後、DMAコントローラはRISCプロセッサから独立して稼働することができ、RISCプロセッサの介入を必要としない。
実際の状況で、RISC命令はハードウェアによるデコードの便利のため、固定長の命令フォーマットを採用し、例えば、32ビット、64ビットなどを採用する。ここで、汎用命令と専用命令の長さは等しくなってもよく、いずれも固定長であり得る。例示として、本実施形態における命令は、32ビットの命令であってもよい。ここで、命令における第0〜6ビットは命令オペコードを表すことができ、命令オペコードは汎用命令と専用命令を区別するために使用されることができる。専用命令はレジスタ選択情報、ベースアドレス情報及び読み取り対象データ長を含むことができる。例示として、命令が専用命令である場合、32ビットにおける第7〜11ビットは複数のレジスタセットにおける1つのレジスタセットを選択するためのレジスタ選択情報であってもよいし、アドレスによるアクセス可能な実施形態におけるアドレス部分のためのものであってもよく、32ビットにおける15〜19ビットは、ベースアドレス情報であってもよく、特定のコンフィギュレーションレジスタセットのベースアドレスを識別するために使用でき、32ビットにおける第20〜24ビットは読み取り対象データ長であってもよく、特定のコンフィギュレーションレジスタセットにおける、読み取り必要があるバイト長さを識別するために使用されてもよい。
本実施形態のいくつかの選択可能な実施形態では、命令を取得する前に、上記の、情報処理用方法はさらに、事前設定されたコンフィギュレーション情報を事前設置されたメモリに記憶することを備えることができる。
本実施形態において、実行主体は事前設定されたコンフィギュレーション情報を事前設置されたメモリに記憶することができる。例示として、上記事前設置されたメモリはRISCプロセッサ以外のオンチップメモリであってもよい。例示として、RISCプロセッサは初期化の段階で、複数組のコンフィギュレーション情報をオンチップメモリに設定することができ、ここで、1組のコンフィギュレーション情報は演算装置の1回の実行に要する情報であってもよい。
いくつかの選択可能な実施形態において、上記情報処理用方法はさらに、次のことを含むことができる。まず、DMAコントローラのデータ転送コンフィギュレーション情報を設定する。
本実施形態において、実行主体はDMAコントローラのデータ転送コンフィギュレーション情報を設定することができる。ここで、上記データ転送コンフィギュレーション情報は、転送対象データを示すためのものであってもよい。例えば、データ転送コンフィギュレーション情報は、ベースアドレスと転送バイト長さを含むことができる。例示として、起動段階に、RISCプロセッサは、DMAコントローラのベースアドレスと転送バイト長さを設定することができる。
続いて、DMAコントローラに起動命令を送信し、それによって、DMAコントローラが起動命令を受信した後に、データ転送コンフィギュレーション情報に基づいてメモリに記憶されたコンフィギュレーション情報をコンフィギュレーションレジスタセットに転送するデータ転送ステップを実行する。
本実施形態において、RISCプロセッサはDMAコントローラに起動命令を送信でき、それによって、DMAコントローラは起動命令を受信した後に、データ転送コンフィギュレーション情報に基づき、メモリに記憶されたコンフィギュレーション情報をコンフィギュレーションレジスタセットに転送するデータ転送ステップを実行できる。
実際の状況では、端末側AI推論の実行過程において、ニューラルネットワーク推論演算に必要なパラメータ情報等は事前取得されることができ、演算開始前に既に固定され、ウエイト値及びニューラルネットワークの各層のコンフィギュレーション情報によって示される。この原理に基づき、演算装置の起動前に、ニューラルネットワークの各層の計算に必要なコンフィギュレーション情報をバッチロードし、演算装置の稼働中にコンフィギュレーション情報をロードする時間を節約できる。また、DMAコントローラはRISCプロセッサから独立して動作することができるため、RISCプロセッサによる演算と、DMAコントローラによるコンフィギュレーション情報組の転送が並列に実行することができ、さらに、演算時間がいっそう節約され、演算効率が向上された。
または、データ転送コンフィギュレーション情報に基づき、メモリに記憶されたコンフィギュレーション情報をコンフィギュレーションレジスタセットに転送することは、具体的には以下のとおりに実行できる。まず、コンフィギュレーションレジスタセットの状態を確定する。
本実施形態では、DMAコントローラが起動した後、まず、複数のコンフィギュレーションレジスタセットの状態を確定し、コンフィギュレーションレジスタセットの状態が全負荷ではないか否かを判定することができる。例示として、DMAコントローラは、コンフィギュレーションローダの読み出しポインタと自己の書き込みポインタとの関係に基づき、コンフィギュレーションレジスタセットの状態が全負荷ではないか否かを判断することができる。ここで、状態は全負荷ではないとは、コンフィギュレーションレジスタセットに余剰スペースがあり、コンフィギュレーションレジスタセットへのデータ転送が可能であることを示す。そうでなければ、コンフィギュレーションレジスタセットに余剰スペースがなく、コンフィギュレーションレジスタセットにデータを転送することができないことを示す。
そして、確定された状態に基づいてコンフィギュレーション情報をメモリからコンフィギュレーションレジスタセットに転送する。
本実施形態では、DMAコントローラは、確定されたコンフィギュレーションレジスタセットの状態に基づいて、コンフィギュレーション情報をメモリからコンフィギュレーションレジスタセットに転送する。例えば、DMAコントローラは、コンフィギュレーションレジスタセットの状態が全負荷ではない場合に、コンフィギュレーション情報をメモリからコンフィギュレーションレジスタセットに転送することができる。そうでなければ、DMAコントローラは待機し、コンフィギュレーションレジスタセットの状態が全負荷ではないと判定されるまでに、コンフィギュレーションローダの読み出しポインタの変化をリアルタイムにクエリする。
ステップ202では、命令が専用命令であると判定されたことに応答し、演算装置により以下の演算ステップ2021〜2023を実行するために供する専用命令を事前設置された演算装置に送信する。
本実施形態において、取得された命令が専用命令であると判定された場合、実行主体は演算装置により以下の演算ステップ2021〜2023を実行するために供する該専用命令を演算装置に送信することができる。
ステップ2021では、レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとする。
本実施形態において、演算装置は専用命令を受信した後、専用命令におけるレジスタ選択情報に基づいて事前設置された複数のコンフィギュレーションレジスタセットから1つのレジスタセットを選択して目標コンフィギュレーションレジスタセットとする。例えば、デコード段階では、デコード手段が命令オペコードを解析し、命令が専用命令であると判定された場合、専用命令におけるレジスタ選択情報を実行段階のコンフィギュレーションローダに送信し、コンフィギュレーションローダがレジスタ選択情報に基づいて複数のコンフィギュレーションレジスタセットから1つのコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとする。
ステップ2022では、ベースアドレス情報及び読み取り対象データ長に基づき、目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み取る。
本実施形態において、演算装置は目標コンフィギュレーションレジスタセットを確定した後に、専用命令におけるベースアドレス情報及び読み取り対象データ長に基づき、目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出すことができる。例えば、演算装置におけるコンフィギュレーションローダは、目標コンフィギュレーションレジスタセットを確定した後、目標コンフィギュレーションレジスタセットのベースアドレス情報により指定されたベースアドレスから、読み取り対象データ長により指定された長さのコンフィギュレーション情報を演算装置に読み出すことができる。例示として、コンフィギュレーション情報は、演算レジスタセットにおけるレジスタアドレス、RISCプロセッサのレジスタセットにおけるレジスタアドレス、演算装置によるニューラルネットワーク推論演算に必要なパラメータ情報等の一連の情報を含むが、これらに限定されるものではない。これらのコンフィギュレーション情報の長さは、RISC命令の32ビットに格納可能な内容をはるかに超えている。
ステップ2023では、コンフィギュレーション情報に対して、事前設定された演算を実行する。
本実施形態において、演算装置はステップ2022で取得されたコンフィギュレーション情報を用いて、事前設定された演算を実行することができる。ここで、事前設定された演算とは、取得された専用命令により指示されて実行する演算であってもよい。演算装置の演算手段は、例えば、ステップ2022で取得されたコンフィギュレーション情報を用いて、専用命令により指示された演算を完成し、演算結果を取得することができる。その後、演算手段は、演算結果を演算レジスタセットまたはRISCプロセッサのレジスタセットに書き戻すことができる。
続いて、本実施形態に係る情報処理用方法の応用シナリオの概略図である図4を参照する。図4の応用シナリオにおいて、端末装置のRISCプロセッサ401は、取得された命令の命令オペコードに基づき、命令の命令タイプを確定する。命令が専用命令であると判定された場合、RISCプロセッサは、演算装置402は以下の演算ステップを実行するために供する専用命令を事前設置された演算装置402に送信する。演算ステップでは、レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとし、次に、ベースアドレス情報及び読み取り対象データ長に基づき、目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出し、最後に、コンフィギュレーション情報に対して事前設定された演算を実行する。
本開示の上記実施形態により提供される方法は演算装置を用いて専用命令を処理し、それによって、縮小命令セットプロセッサアーキテクチャにおける専用命令の拡張の問題を解決する。
さらに、情報処理用方法の更なる実施形態の流れ500を示す図5を参照する。該情報処理用方法の流れ500は以下のステップを含む。
ステップ501では、取得された命令の命令オペコードに基づき、命令の命令タイプを確定する。
本実施形態において、ステップ501は図2に示す実施形態のステップ201と同様であり、ここでは説明を省略する。
ステップ502では、命令が専用命令であると判定されたことに応答し、演算装置により以下の演算ステップ5021〜5023を実行するために供する専用命令を事前設置された演算装置に送信する。
本実施形態において、取得された命令が専用命令であると判定された場合、実行主体は、演算装置により以下の演算ステップ5021〜5023を実行するために供する専用命令を演算装置に送信する。
ステップ5021では、レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとする。
本実施形態において、ステップ5021は、図2に示す実施形態のステップ2021と同様であり、ここでは説明を省略する。
ステップ5022では、ベースアドレス情報及び読み取り対象データ長に基づき、目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み取る。
本実施形態において、ステップ5022は図2に示す実施形態のステップ2022と同様であり、ここでは説明を省略する。
ステップ5023では、コンフィギュレーション情報に対して、事前設定された演算を実行する。
本実施形態において、ステップ5023は図2に示す実施形態のステップ2023と同様であり、ここでは説明を省略する。
ステップ503では、命令が汎用命令であると判定されたことに応答し、操作ステップ5031〜5034を実行する。
本実施形態において、命令タイプはさらに汎用命令を含むことができる。汎用命令は事前設置されたレジスタセットからレジスタを確定するための第1のレジスタ確定情報、第2のレジスタ確定情報及び第3のレジスタ確定情報を含むことができる。例示として、命令が汎用命令である場合、32ビットのうちの第7〜11ビットは、レジスタセットにおける1つのレジスタを選択するために用いられることができ、該レジスタは命令演算結果を格納するために使用されることができる。32ビットのうちの第15〜19ビットは、レジスタセットにおける1つのレジスタを選択するために用いられることができ、該レジスタは命令演算オペランド1を格納するために用いられることができる。32ビットのうちの第20〜24ビットは、レジスタセットにおける1つのレジスタを選択するために使用されることができ、該レジスタは命令演算オペランド2を格納するために使用されることができる。
ここで、実行主体は、取得された命令が汎用命令であると判定された場合に、以下の操作ステップ5031〜5034を実行することができる。
ステップ5031では、第1のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第1オペランドとする。
本実施形態では、実行主体は、第1のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第1オペランドとすることができる。
ステップ5032では、第2レジスタ確定情報によって確定されたレジスタにおけるデータを取得して第2オペランドとする。
本実施形態において、実行主体は、第2のレジスタ確定情報により確定されたレジスタにおけるデータを取得し、第2オペランドとすることができる。
ステップ5033では、第1オペランド及び第2オペランドに対して事前設定された操作を実行して、操作結果を取得する。
本実施形態において、実行主体は、第1オペランドおよび第2オペランドに対して事前設定された操作を実行することができる。ここで、事前設定された操作とは、取得された汎用命令により指示されて実行する操作であってもよい。
ステップ5034では、操作結果を第3のレジスタ確定情報により確定されたレジスタに記憶する。
本実施形態において、実行主体は、ステップ5033で取得された操作結果を、第3のレジスタ確定情報により確定されたレジスタに格納することができる。
図5から分かるように、図2に対応する実施形態と比べて、本実施形態における情報処理用方法の流れ500は、命令が汎用命令である場合、汎用命令に対する処理を強調した。従って、本実施形態で説明した技術手段は、異なる命令タイプに対して異なるステップを実行することができ、それによって、汎用命令と専用命令に対する処理を実現した。
さらに、図6を参照し、上記各図に示される方法に対する実現として本開示は情報処理用装置の一実施形態を提供し、該装置の実施形態は図2に示される方法の実施形態に対応し、該装置は具体的に様々な電子機器に適用することができる。
図6に示すように、本実施形態の情報処理用装置600は、確定手段601と演算手段602を備える。ここで、確定手段601は、取得された命令の命令オペコードに基づき、上記命令の、レジスタ選択情報、ベースアドレス情報及び読み取り対象データ長を含む専用命令を含む命令タイプを確定するように構成され、演算手段602は、上記命令が専用命令であると判定されたことに応答し、上記専用命令を事前設置された演算装置に送信し、それによって、上記演算装置は、上記レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとすることと、上記ベースアドレス情報及び上記読み取り対象データ長に基づき、上記目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出すことと、上記コンフィギュレーション情報に対して事前設定された演算を実行することと、を備える演算ステップを実行するように構成される。
本実施形態において、情報処理用装置600の確定手段601及び演算手段602の具体的な処理及びそれによる技術的効果はそれぞれ図2に対応する実施形態におけるステップ201及びステップ202の関連説明を参照することができるので、ここで説明を省略する。
本実施形態のいくつかの選択可能な実施形態では、命令タイプはさらに汎用命令を含み、汎用命令は事前設置されたレジスタセットからレジスタを確定するための第1のレジスタ確定情報、第2のレジスタ確定情報及び第3のレジスタ確定情報を含み、上記装置600はさらに、上記命令が汎用命令であると判定されたことに応答し、上記第1のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第1オペランドとするステップと、上記第2のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第2オペランドとするステップと、上記第1オペランドおよび上記第2オペランドに対して事前設定された操作を行って操作結果を取得するステップと、上記操作結果を上記第3のレジスタ確定情報により確定されたレジスタに格納するステップとを含む操作ステップを実行するように構成される操作手段(図示せず)を備える。
本実施形態のいくつかの選択可能な実施形態では、上記装置600はさらに、事前設定されたコンフィギュレーション情報を事前設置されたメモリに記憶するように構成される記憶手段(図示せず)を備える。
本実施形態のいくつかの選択可能な実施形態では、上記装置600はさらに、上記DMAコントローラの、転送対象データを指示するためのデータ転送コンフィギュレーション情報を配置するように構成される配置手段(図示せず)と、起動命令を上記DMAコントローラに送信するように構成され、それによって、上記DMAコントローラが起動命令を受信した後、事前設置されたデータ転送ステップを実行する起動手段(図示せず)と、を備え、上記DMAコントローラは、上記データ転送コンフィギュレーション情報に基づいて上記メモリに記憶されたコンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送する転送手段を含む。
本実施形態のいくつかの実施形態では、上記転送手段はさらに、上記コンフィギュレーションレジスタセットの状態を確定することと、確定された状態に基づいて、上記メモリからコンフィギュレーション情報を上記コンフィギュレーションレジスタセットに転送することとを実行するように構成される。
次に、本開示の実施形態に係る電子機器(例えば図1の端末装置)700の構造概略図を示す図7を参照する。なお、図7に示した端末装置は例示であり、本開示の実施形態の機能や利用範囲を制限するものではない。
図7に示すように、電子機器700は、ROM(Read Only Memory)702に格納されたプログラムや、記憶装置708からRAM(Random Access Memory)703にロードされたプログラムに基づき、各種の適当な動作や処理を実行することができる処理装置(例えば、中央処理装置、グラフィックプロセッサ、演算装置等)701を備える。RAM703には、電子機器700の操作に必要な各種プログラムやデータが記憶される。処理装置701、ROM702、RAM703は、バス704を介して相互に接続されている。バス704には、入出力(I/O)インタフェース705も接続されている。
I/Oインタフェース705には、一般的には、入力装置706、出力装置707、記憶装置708、通信装置709が接続されることができ、入力装置706は例えばタッチパネル、タッチパッド、キーボード、マウス、カメラ、マイク、加速度計、ジャイロスコープなどを含み、出力装置707は、例えば、LCD(Liquid Crystal Display)、スピーカ、バイブレータなどを含み、記憶装置708は例えば、磁気テープ、ハードディスクなどを含む。通信装置709は、データを交換するために、電子機器700が他の装置と無線又は有線通信を行うことを可能にすることができる。なお、図7は、各種の装置を備えた電子機器700を示したが、図示した全ての装置を実施又は備えることが要求されていないことを理解されたい。代替的に、より多く又はより少ない装置を実施又は備えることができる。図7に示す各ブロックは、1つの装置を表してもよく、必要に応じて複数の装置を代表してもよい。
特に、本開示の実施形態に基づき、上述のフローチャートを参照して説明したプロセスは、コンピュータソフトウェアプログラムとして実現されることが可能である。例えば、本開示の実施形態は、フローチャートに示された方法を実行するためのプログラムコードを含む、コンピュータ可読媒体上に担持されたコンピュータプログラム製品を含む。このような実施形態では、コンピュータプログラムは、通信装置709を介してネットワークからダウンロードされインストールされたり、記憶装置708からインストールされたり、RОM702からインストールされたりすることができる。このコンピュータプログラムが処理装置701によって実行されると、本開示の実施形態の方法に限定された上記機能が実行される。
なお、本開示の実施形態で説明したコンピュータ可読媒体は、コンピュータ可読信号媒体若しくはコンピュータ可読記憶媒体、又は上記両者の任意の組み合わせであり得る。コンピュータ可読記憶媒体は、例えば、電気、磁気、光、電磁気、赤外線、又は半導体のシステム、装置若しくはデバイス、又は以上の任意の組み合わせであり得るが、これらに限られない。コンピュータ可読記憶媒体のより具体的な例は、1本又は複数本のリード線を有する電気的に接続された携帯型コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(RОM)、消去可能プログラマブル読取り専用メモリ(EPRОM又はフラッシュメモリ)、光ファイバ、携帯型コンパクトディスク読取り専用メモリ(CD−RОM)、光記憶装置、磁気記憶装置、又は上記の任意の適切な組み合わせを含むが、これらに限られない。本開示の実施形態では、コンピュータ可読記憶媒体は、命令実行システム、装置又はデバイスによって使用されることもそれらに結合して使用されることも可能なプログラムを含む又は記憶する任意の有形の媒体であり得る。本開示の実施形態では、コンピュータ可読信号媒体は、ベースバンド内において又はキャリアの一部として伝播された、コンピュータ可読プログラムコードを搬送しているデータ信号を含んでもよい。このような伝播されたデータ信号は、電磁信号、光信号、又は上述の任意の適切な組み合わせを含むが、これらに限られない様々な形態を採用することができる。コンピュータ可読信号媒体はまた、コンピュータ可読記憶媒体以外の任意のコンピュータ可読媒体であってもよい。このコンピュータ可読信号媒体は、命令実行システム、装置又はデバイスによって使用されることもそれらに結合して使用されることも可能なプログラムを送信、伝播又は伝送することができる。コンピュータ可読媒体に含まれているプログラムコードは、電線、光ケーブル、RF(無線周波数)など、又は上記の任意の適切な組み合わせを含むが、これらに限られない任意の適切な媒体で伝送することができる。
上記コンピュータ可読媒体は前記電子機器に含まれるものであってもよく、個別に存在しており、該電子機器に組み込まれていないものであってもよい。前記コンピュータ可読媒体は、1つ又は複数のプログラムを搬送しており、前記1つ又は複数のプログラムが該電子機器によって実行されると、該電子機器は、取得された命令の命令オペコードに基づき、上記命令の、レジスタ選択情報、ベースアドレス情報及び読み取り対象データ長を含む専用命令を含む命令タイプを確定することと、上記命令が専用命令であると判定されたことに応答し、上記専用命令を事前設置された演算装置に送信し、それによって、上記演算装置は、上記レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとすることと、上記ベースアドレス情報及び上記読み取り対象データ長に基づき、上記目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出すことと、上記コンフィギュレーション情報に対して事前設定された演算を実行することと、を備える演算ステップを実行する。
本開示の実施形態の動作を実行するためのコンピュータプログラムコードは、1つ又は複数のプログラミング言語、又はそれらの組み合わせで書くことができる。プログラミング言語は、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語や、「C」言語又は類似するプログラミング言語などの従来の手続き型プログラミング言語を含む。プログラムコードは、完全にユーザのコンピュータ上で実行されることも、部分的にユーザのコンピュータ上で実行されることも、スタンドアロンソフトウェアパッケージとして実行されることも、部分的にユーザのコンピュータ上で実行されながら部分的にリモートコンピュータ上で実行されることも、又は完全にリモートコンピュータ又はサーバ上で実行されることも可能である。リモートコンピュータの場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されることができる。又は、外部のコンピュータに接続されることができる(例えば、インターネットサービスプロバイダーによるインターネット経由で接続される)。
添付図面におけるフローチャート及びブロック図は、本開示の様々な実施形態に係るシステム、方法、及びコンピュータプログラム製品の実施可能なアーキテクチャ、機能、及び動作を示している。ここで、フローチャート又はブロック図における各ブロックは、モジュール、プログラムセグメント、又はコードの一部を表すことができる。該モジュール、プログラムセグメント、又はコードの一部は、指定されたロジック関数を実施するための1つ又は複数の実行可能な命令を含む。また、いくつかの代替的な実施形態では、ブロックに記載されている機能は、図面に示されているものとは異なる順序で発生する場合があることにも留意されたい。例えば、連続して表されている2つのブロックは、実際にほぼ並行して実行されてもよく、時には逆の順序で実行されてもよい。これは関連する機能によって決まる。また、ブロック図及び/又はフローチャートにおける各ブロック、及びブロック図及び/又はフローチャートにおけるブロックの組み合わせは、指定された機能又は動作を実行する専用のハードウェアベースのシステムで実施することも、又は専用のハードウェアとコンピュータの命令の組み合わせで実施することも可能であることに留意されたい。
本開示の実施形態において説明された手段は、ソフトウェア又はハードウェアによって実施され得る。説明された手段はプロセッサに内蔵されてもよい。例えば、「確定手段と演算手段を備えるプロセッサ」と記載されてもよい。これらの手段の名称は、該手段その自体に対する限定ではなく、例えば、取得手段は、「取得された命令の命令オペコードに基づいて上記命令の命令タイプを確定する手段」と記載されてもよい。
上記の説明は、あくまでも本開示の好ましい実施形態及び応用技術原理の説明にすぎない。本開示に係る発明の範囲は、上記の技術的特徴の特定の組み合わせによって形成された技術的解決手段に限定されず、上記の発明の構想から逸脱しない範囲で上記の技術的特徴又はその同等の技術的特徴の任意の組み合わせによって形成されたその他の技術的解決手段、例えば、上記の特徴と本開示に開示された同様の機能を有する技術的特徴(それだけに限定されない)とが相互に代替することによって形成された技術的解決手段もカバーしていることを当業者は理解すべきである。

Claims (12)

  1. 情報処理用方法であって、
    取得された命令の命令オペコードに基づき、レジスタ選択情報、ベースアドレス情報及び読み取り対象データ長を含む専用命令を含む前記命令の命令タイプを確定することと、
    前記命令が専用命令であると判定されたことに応答し、前記専用命令を事前設置された演算装置に送信し、前記演算装置は、
    前記レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとすることと、
    前記ベースアドレス情報及び前記読み取り対象データ長に基づき、前記目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出すことと、
    前記コンフィギュレーション情報に対して事前設定された演算を実行することと、
    を含む演算ステップを実行することと、を備える情報処理用方法。
  2. 命令タイプにはさらに、事前設置されたレジスタセットからレジスタを確定するための第1のレジスタ確定情報、第2のレジスタ確定情報及び第3のレジスタ確定情報を含む汎用命令が含まれ、
    前記方法はさらに、前記命令が汎用命令であると判定されたことに応答し、
    前記第1のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第1のオペランドとすることと、
    前記第2のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第2のオペランドとすることと、
    前記第1のオペランドおよび前記第2のオペランドに対して事前設定された操作を行って操作結果を取得することと、
    前記操作結果を前記第3のレジスタにより確定されたレジスタに格納することと
    を備える操作ステップを実行することを備える請求項1に記載の方法。
  3. 命令を取得する前に、前記方法はさらに、事前設定されたコンフィギュレーション情報を事前設置されたメモリに記憶する、請求項1に記載の方法。
  4. 前記方法はさらに、
    DMAコントローラの、転送対象データを示すためのデータ転送コンフィギュレーション情報を設定することと、
    起動命令を前記DMAコントローラに送信することであって、それによって、前記DMAコントローラが起動命令を受信した後、前記データ転送コンフィギュレーション情報に基づいて前記メモリに記憶されたコンフィギュレーション情報を前記コンフィギュレーションレジスタセットに転送するデータ転送ステップを実行する、こととを、
    備える請求項3に記載の方法。
  5. 前記データ転送コンフィギュレーション情報に基づいて前記メモリに記憶されたコンフィギュレーション情報を前記コンフィギュレーションレジスタセットに転送することは、
    前記コンフィギュレーションレジスタセットの状態を確定することと、
    確定された状態に基づいて前記メモリからコンフィギュレーション情報を前記コンフィギュレーションレジスタセットに転送することと、
    を備える請求項4に記載の方法。
  6. 情報処理用装置であって、
    取得された命令の命令オペコードに基づき、レジスタ選択情報、ベースアドレス情報及び読み取り対象データ長を含む専用命令を含む前記命令の命令タイプを確定するように構成される確定手段と、
    前記命令が専用命令であると判定されたことに応答し、前記専用命令を事前設置された演算装置に送信し、それによって、前記演算装置は、前記レジスタ選択情報に基づいて事前設置されたコンフィギュレーションレジスタセットからコンフィギュレーションレジスタセットを選択して目標コンフィギュレーションレジスタセットとすることと、前記ベースアドレス情報及び前記読み取り対象データ長に基づき、前記目標コンフィギュレーションレジスタセットからコンフィギュレーション情報を読み出すことと、前記コンフィギュレーション情報に対して事前設定された演算を実行することと、を含む演算ステップを実行するように構成される演算手段と、を備える情報処理用装置。
  7. 命令タイプにはさらに汎用命令が含まれ、汎用命令は事前設置されたレジスタセットからレジスタを確定するための第1のレジスタ確定情報、第2のレジスタ確定情報及び第3のレジスタ確定情報を含み、
    前記装置はさらに、前記命令が汎用命令であると判定されたことに応答し、
    前記第1のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第1のオペランドとすることと、
    前記第2のレジスタ確定情報により確定されたレジスタにおけるデータを取得して第2のオペランドとすることと、
    前記第1のオペランドおよび前記第2のオペランドに対して事前設定された操作を行って操作結果を取得することと、
    前記操作結果を前記第3のレジスタにより確定されたレジスタに格納することと
    を備える操作ステップを実行するように構成される操作手段を備える、
    請求項6に記載の装置。
  8. 前記装置は、事前設定されたコンフィギュレーション情報を事前設置されたメモリに記憶するように構成される記憶手段をさらに備える請求項6に記載の装置。
  9. 前記装置はさらに、
    DMAコントローラの、転送対象データを示すためのデータ転送コンフィギュレーション情報を設定するように構成される設定手段と、
    起動命令を前記DMAコントローラに送信するように構成される起動手段であって、それによって、前記DMAコントローラが起動命令を受信した後、事前設定されたデータ転送ステップを実行する、起動手段と、を備え、
    前記DMAコントローラは、前記データ転送コンフィギュレーション情報に基づいて前記メモリに記憶されたコンフィギュレーション情報を前記コンフィギュレーションレジスタセットに転送するように構成される転送手段を備える、請求項8に記載の装置。
  10. 前記転送手段はさらに、
    前記コンフィギュレーションレジスタセットの状態を確定することと、
    確定された状態に基づいて前記メモリから前記コンフィギュレーション情報を前記コンフィギュレーションレジスタセットに転送することと、を実行するように構成される請求項9に記載の装置。
  11. 1つまたは複数のプロセッサと、
    1つまたは複数のプログラムが記憶される記憶装置と、を備える端末であって、
    前記1つまたは複数のプログラムが前記1つまたは複数のプロセッサによって実行される場合、前記1つまたは複数のプロセッサに請求項1〜5のいずれか1項に記載の方法を実現させる端末。
  12. コンピュータプログラムが記憶されるコンピュータ可読媒体であって、
    前記プログラムがプロセッサによって実行される時、請求項1〜5のいずれか1項に記載の方法を実現するコンピュータ可読媒体。
JP2020096666A 2019-12-31 2020-06-03 情報処理用方法及び装置 Active JP6998991B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201911402401.9 2019-12-31
CN201911402401.9A CN111158756B (zh) 2019-12-31 2019-12-31 用于处理信息的方法和装置

Publications (2)

Publication Number Publication Date
JP2021111313A true JP2021111313A (ja) 2021-08-02
JP6998991B2 JP6998991B2 (ja) 2022-01-18

Family

ID=70559410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020096666A Active JP6998991B2 (ja) 2019-12-31 2020-06-03 情報処理用方法及び装置

Country Status (3)

Country Link
US (1) US11016769B1 (ja)
JP (1) JP6998991B2 (ja)
CN (1) CN111158756B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112633505B (zh) * 2020-12-24 2022-05-27 苏州浪潮智能科技有限公司 一种基于risc-v的人工智能推理方法和系统
CN113138800B (zh) * 2021-03-25 2023-05-09 沐曦集成电路(上海)有限公司 定长指令集的编解码方法及计算系统
CN116126252B (zh) * 2023-04-11 2023-08-08 南京砺算科技有限公司 数据加载方法及图形处理器、计算机可读存储介质
CN117193861B (zh) * 2023-11-07 2024-03-15 芯来智融半导体科技(上海)有限公司 指令处理方法、装置、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250895A (ja) * 1999-03-01 2000-09-14 Sanyo Electric Co Ltd データ処理装置
JP2008530689A (ja) * 2005-02-09 2008-08-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 効率的なデジタル信号処理に適用するデータプロセッサとその方法
US20180046903A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Deep processing unit (dpu) for implementing an artificial neural network (ann)
CN109857460A (zh) * 2019-02-20 2019-06-07 南京华捷艾米软件科技有限公司 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统
CN110502278A (zh) * 2019-07-24 2019-11-26 福州瑞芯微电子股份有限公司 基于RiscV扩展指令的神经网络协处理器及其协处理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761524A (en) * 1996-03-15 1998-06-02 Renditon, Inc. Method and apparatus for performing and operation multiple times in response to a single instruction
US6128728A (en) * 1997-08-01 2000-10-03 Micron Technology, Inc. Virtual shadow registers and virtual register windows
GB2402763B (en) 2003-06-13 2006-03-01 Advanced Risc Mach Ltd Data access program instruction encoding
US8484441B2 (en) * 2004-03-31 2013-07-09 Icera Inc. Apparatus and method for separate asymmetric control processing and data path processing in a configurable dual path processor that supports instructions having different bit widths
JP2006011924A (ja) * 2004-06-28 2006-01-12 Fujitsu Ltd 再構成可能演算装置および半導体装置
JP6308095B2 (ja) * 2014-10-08 2018-04-11 富士通株式会社 演算回路及び演算回路の制御方法
KR102270789B1 (ko) * 2014-12-10 2021-06-29 삼성전자주식회사 프로세서 및 프로세서의 명령어 처리 방법
CN106557442B (zh) * 2015-09-28 2019-05-21 北京兆易创新科技股份有限公司 一种芯片系统
CN105426274B (zh) * 2015-11-13 2018-12-25 上海交通大学 一种容软错误的粗粒度可重构阵列
CN107315715B (zh) * 2016-04-26 2020-11-03 中科寒武纪科技股份有限公司 一种用于执行矩阵加/减运算的装置和方法
CN106775579B (zh) * 2016-11-29 2019-06-04 北京时代民芯科技有限公司 基于可配置技术的浮点运算加速单元
US10409615B2 (en) * 2017-06-19 2019-09-10 The Regents Of The University Of Michigan Configurable arithmetic unit
CN107562549B (zh) * 2017-08-21 2019-12-03 西安电子科技大学 基于片上总线和共享内存的异构众核asip架构
US10747286B2 (en) * 2018-06-11 2020-08-18 Intel Corporation Dynamic power budget allocation in multi-processor system
CN110390385B (zh) * 2019-06-28 2021-09-28 东南大学 一种基于bnrp的可配置并行通用卷积神经网络加速器
US11593156B2 (en) * 2019-08-16 2023-02-28 Red Hat, Inc. Instruction offload to processor cores in attached memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000250895A (ja) * 1999-03-01 2000-09-14 Sanyo Electric Co Ltd データ処理装置
JP2008530689A (ja) * 2005-02-09 2008-08-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 効率的なデジタル信号処理に適用するデータプロセッサとその方法
US20180046903A1 (en) * 2016-08-12 2018-02-15 DeePhi Technology Co., Ltd. Deep processing unit (dpu) for implementing an artificial neural network (ann)
CN109857460A (zh) * 2019-02-20 2019-06-07 南京华捷艾米软件科技有限公司 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统
CN110502278A (zh) * 2019-07-24 2019-11-26 福州瑞芯微电子股份有限公司 基于RiscV扩展指令的神经网络协处理器及其协处理方法

Also Published As

Publication number Publication date
JP6998991B2 (ja) 2022-01-18
CN111158756B (zh) 2021-06-29
US11016769B1 (en) 2021-05-25
CN111158756A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
JP6998991B2 (ja) 情報処理用方法及び装置
JP6124463B2 (ja) 一方のアーキテクチャのコードモジュールが他方のアーキテクチャのライブラリモジュールを用いることを可能にするインターアーキテクチャ互換性モジュール
EP3391195B1 (en) Instructions and logic for lane-based strided store operations
RU2636675C2 (ru) Команды, процессоры, способы и системы доступа множественных регистров к памяти
JP2016103280A (ja) 複数の試験ソースに対するor試験及びand試験機能を提供するために命令をフュージングする方法及び装置
TW201727493A (zh) 從持續記憶體預取資訊的指令及邏輯
KR20160075669A (ko) 하이브리드 프로세서 코어를 포함하는 시스템-온-칩(soc)
TWI715681B (zh) 用於位元欄位位址和插入之指令及邏輯
CN109062617A (zh) 一种支持多类型设备的平台的应用方法、移动终端
JP2014530426A (ja) ストライド機能及びマスク機能を有するベクトルロード及びベクトルストアを提供する命令及びロジック
TW201738758A (zh) 用以提供基底暫存器交換狀態驗證功能之指令及邏輯
TW201732564A (zh) 用於使用monitor及mwait架構之使用者層級執行緒同步的方法及裝置
TW201723817A (zh) 用於取得多重向量元素操作之指令及邏輯
TW201729077A (zh) 用於設置多重向量元素操作之指令及邏輯
TW201723815A (zh) 用於偶數與奇數向量取得操作之指令及邏輯
CN111651203A (zh) 一种用于执行向量四则运算的装置和方法
TW201729076A (zh) 用於合成與排列操作序列之指令及邏輯
JP2002215387A (ja) 命令トランスレータを備えたデータ処理装置およびメモリインタフェース装置
CN108292218A (zh) 用于向量位字段压缩和扩展的指令和逻辑
WO2023274135A1 (zh) 一种数据的处理系统、方法以及装置
US20220269622A1 (en) Data processing methods, apparatuses, electronic devices and computer-readable storage media
TW201729080A (zh) 用於排列序列之指令及邏輯
TWI752068B (zh) 一種運算裝置及其操作方法
CN111966399A (zh) 指令处理方法、装置及相关产品
CN115437603B (zh) 用于生成随机数的方法及其相关产品

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200609

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211118

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: 20211130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211221

R150 Certificate of patent or registration of utility model

Ref document number: 6998991

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150