JP2021103387A - デバイスアクセス装置、演算装置、デバイスアクセスシステム及びデバイスアクセス方法 - Google Patents
デバイスアクセス装置、演算装置、デバイスアクセスシステム及びデバイスアクセス方法 Download PDFInfo
- Publication number
- JP2021103387A JP2021103387A JP2019233656A JP2019233656A JP2021103387A JP 2021103387 A JP2021103387 A JP 2021103387A JP 2019233656 A JP2019233656 A JP 2019233656A JP 2019233656 A JP2019233656 A JP 2019233656A JP 2021103387 A JP2021103387 A JP 2021103387A
- Authority
- JP
- Japan
- Prior art keywords
- instruction set
- processor
- access
- address
- pcie
- 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
Images
Landscapes
- Bus Control (AREA)
- Memory System (AREA)
Abstract
Description
以下、本発明の一実施形態によるデバイスアクセスシステムについて図1〜図10を参照して説明する。
図1は、本発明の一実施形態によるデバイスアクセスシステムの概要を示す図である。
図1に示すようにデバイスアクセスシステム100Aは、プロセッサ(Processor)1Aと、デバイスアクセス部2Aと、PCIeSW(Peripheral Component Interconnect Express Switch)3Aと、PCIeで接続されるデバイスであるPCIeデバイス(PCIe device)30A〜33Aと、を含む。本実施形態に係るデバイスアクセスシステム100Aは、一般的なデバイスアクセスシステムと比較して、デバイスアクセス部2Aを備える点で異なる。一般的なデバイスアクセスシステムでは、プロセッサ1Aが備えるプロセッサコアが、PCIeSW3Aを経由してPCIeデバイス30A〜33Aにアクセスするが、デバイスアクセスシステム100Aでは、デバイスアクセス部2Aが代行して、PCIeデバイス30A〜33Aへのアクセスを行う。
次にFPGA(field-programmable gate array)を用いて図1のデバイスアクセス部2Aを構成する例を用いて、本実施形態のデバイスアクセス方法についてさらに詳しく説明する。
図2は、本発明の一実施形態によるデバイスアクセスシステムの構成例を示す図である。
図2に示すように演算装置10は、プロセッサ(Processor)1と、FPGA(デバイスアクセス部)2と、PCIeSW3と、RAM(Random Access Memory)4と、を備える。また、演算装置10は、PCIeSW3を介してPCIeデバイス(PCIe device)30〜33と接続されている。
FPGA2は、図1のデバイスアクセス部2Aを構成する。つまり、FPGA2は、プロセッサ1の指示に基づいて、プロセッサ1の代わりにMMIO方式でPCIeデバイス31等にアクセスする機能を有している。FPGA2がMMIOアクセスを行うと、PCIeSW3を介してPCIeデバイス31等にアクセスが行われる。
PCIeSW3は64bitのアドレス空間を扱うことができ、任意のアドレスに配下のPCIeデバイス30〜33を割り当て、MMIOアクセスを行う。図2に示す構成例では、PCIeデバイス30〜33はそれぞれ1GBのリソース(レジスタ又は内部RAM)を有する。例えば、PCIeデバイス30にアドレス0x00000010_00000000〜0x00000010_3FFFFFFFを割り当て、PCIeデバイス31に0x00000010_40000000〜0x00000010_7FFFFFFFを割り当て、PCIeデバイス32に0x00000010_80000000〜0x00000010_BFFFFFFFを割り当て、PCIeデバイス33に0x00000010_C0000000-0x00000010_FFFFFFFFを割り当てる。PCIeSW3に対してMMIO方式によるアクセスが発行された場合、PCIeSW3は、発行されたアドレスに該当するPCIeデバイスへ、アクセスを振り分ける。
図3に示すようにプロセッサ1は、プロセッサコア(Processor Core)11と、PCIeコントローラ(PCIe Controller)12,13と、メモリコントローラ(Memory Controller)14と、割り込みコントローラ(Programmable interrupt controller)16と、を備える。プロセッサコア11、PCIeコントローラ12、PCIeコントローラ13、メモリコントローラ14、割り込みコントローラ16は、内部バス15で接続されている。
プロセッサコア11内部の32bitのアドレスから、内部バス15で扱う40bitアドレスへは、プロセッサコア11が備えるTLB(translation lookaside buffer)によって任意に変換される。これにより、図4に示すようにプロセッサコア11が扱える32bitのアドレス空間を、40bitのアドレス空間の一部を割り当てることができる。
同様にデバイスアクセス部使用領域2は、Processor Entry 0〜Processor Entry nに分割され、それぞれにはエントリ毎のデータが格納される。
図6は、本発明の一実施形態によるデバイスアクセス部の構成例を示す図である。
図6に示すように、FPGA2は、PCIeインタフェース20A、20Bと、PCIeアクセス制御回路21と、メモリアドレス生成回路22と、命令セット回路23と、デバイスアドレス生成回路24と、を備える。
PCIeインタフェース20Aは、プロセッサ1接続用のインタフェースである。FPGA2は、PCIeインタフェース20Aを介してプロセッサ1と接続されている。
図7は、本発明の一実施形態によるアクセス指示データのデータ構造の一例を示す図である。
図示するようにアクセス指示データは4byteで構成される。4byteのうちの先頭から3byteに値が設定され、4byte目は予備の領域である。
先頭のByte0には、Commandデータが設定される。Commandデータには、どの命令セットを実行するかを指定する値が設定される。PCIeアクセス制御回路21は、命令セット回路00〜命令セット回路XXの中から、Byte0に設定された値に対応する回路を起動する。
なお、アクセスに必要なデータは、RAM4のデバイスアクセス部使用領域1に書き込んで書き込んだエントリのエントリ番号を通知するほかに、直接、FPGA2にMMIOアクセスにより書き込む方法でもよい。
図8は、本発明の一実施形態によるデバイスアクセスの動作例を示す図である。
プロセッサ1が、PCIeデバイス31に対し、複数の命令を含む命令セットαを発行するとする。例えば、プロセッサ1は、RAM4のデバイスアクセス部使用領域2にWriteするデータを格納し(S1)、データを格納したデバイスアクセス部使用領域2のエントリ番号、アクセス先のPCIeデバイス31のデバイス番号、命令セットαを指定して、4byteのアクセス指示データを作成する。プロセッサ1は、アクセス指示データを0x10_F0000000に書き込む。これがFPGA2へのデバイスアクセス指示である(S2)。
ここで、命令セット回路00は、アクセス先のデバイス(今回の例では、PCIeデバイス31)へ“Read request”を発行し、アクセス先のデバイスから“Read reply”が返ってくると、アクセス先のデバイスへ“Write request”を発行し、続いて、アクセス先のデバイスへ“Read request”を発行して、アクセス先のデバイスからの“Read reply”を受信し、さらにアクセス先のデバイスで読み取ったデータをRAM4に格納し、命令セットの実行完了をプロセッサへ通知するように構成されている。つまり、命令セット回路00は、プロセッサ1の介在を必要としない一連の処理を実行するように構成されている。命令セット回路00の起動後は、命令セット回路00が主体的にこれらの処理を行う。
命令セット回路00は、“Read request”の発行(S3)、“Read reply”の受信(S4)、“Write request”の発行(S5)、“Read request”の発行(S6)、“Read reply”の受信(S7)を順次行う。
次に命令セット回路00は、MSIを使用してプロセッサ1に命令セットαの完了、データが格納されたエントリ番号を通知する(S9)。
デバイスアクセス部2Aを有しない演算装置では、命令セットαをPCIeデバイス31へ発行する場合、プロセッサ1が、PCIeSW3を介して、PCIeデバイス31へ一連の命令セット(S3´〜S7´)を発行する。図9の方法の場合、S3´〜S4´の期間、S6´〜S7´の期間でプロセッサ1が待ち状態となり、処理が滞る可能性がある。
以上により、パフォーマンス悪化を抑えつつ、デバイスへのアクセスのために必要となるアドレス空間を削減することが可能となる。
デバイスアクセス装置40は、少なくとも制御手段41を備えている。
デバイスアクセス装置40は、プロセッサに代わってMMIO方式でデバイスへのアクセスを行う。制御手段41は、プロセッサの指示に基づいて、アクセス対象のデバイスへの命令セットを発行し、前記命令セットの発行が完了すると、プロセッサへ命令セットの発行完了を通知する。
なお、デバイスアクセス装置40は、実施形態のFPGA2(デバイスアクセス部2A)に対応し、制御手段41は、PCIeアクセス制御回路21に対応する。
10・・・演算装置
1、1A・・・プロセッサ
11・・・プロセッサコア
12,13・・・PCIeコントローラ
14・・・メモリコントローラ
15・・・内部バス
16・・・割り込みコントローラ
2・・・FPGA(デバイスアクセス部)
2A・・・デバイスアクセス部
20A、20B・・・PCIeインタフェース
21・・・PCIeアクセス制御回路
22・・・メモリアドレス生成回路
23・・・命令セット回路
24・・・デバイスアドレス生成回路
3、3A・・・PCIeSW
30、31、32、33、30A、31A、32A、33A・・・PCIeデバイス
4・・・RAM
Claims (8)
- プロセッサに代わってデバイスへMMIO方式でのアクセスを行うデバイスアクセス装置であって、
前記プロセッサの指示に基づいて、前記デバイスへ命令セットを発行し、前記命令セットの発行が完了すると、前記プロセッサへ前記命令セットの完了を通知する制御手段、
を備えるデバイスアクセス装置。 - 前記デバイスの識別情報に基づいて、アクセス先の前記デバイスのアドレスを生成するデバイスアドレス生成手段と、
前記プロセッサが前記デバイスへ発行し得る命令セットと等しい命令セットを発行する命令セット回路と、
を備え、
前記制御手段は、前記プロセッサから前記デバイスの識別情報と、前記デバイスへ発行する命令セットを指定するコマンド情報とを取得し、
前記デバイスアドレス生成手段は、取得された前記識別情報に基づいてアドレスを生成し、
前記制御手段は、前記コマンド情報に対応する命令セットを発行する前記命令セット回路を起動し、生成された前記アドレスに対して前記命令セットを実行する、
請求項1に記載のデバイスアクセス装置。 - 前記命令セット回路は、前記命令セットの実行が完了すると、前記命令セットの実行完了を前記プロセッサに通知する、
請求項2に記載のデバイスアクセス装置。 - 前記デバイスへのアクセスに必要なデータを格納するメモリ領域のアドレスを生成する第1メモリアドレス生成手段、
をさらに備え、
前記第1メモリアドレス生成手段は、前記プロセッサから前記データを格納した前記メモリ領域のエントリ情報を取得し、前記エントリ情報に基づいてアドレスを生成し、
前記命令セット回路は、前記メモリ領域における生成された前記アドレスから前記データを取得して、前記命令セットを実行する、
請求項2又は請求項3に記載のデバイスアクセス装置。 - 前記命令セット回路は、前記デバイスから読み出したデータを取得し、該データをメインメモリへ格納する命令をメモリコントローラへ発行する、
請求項2から請求項4の何れか1項に記載のデバイスアクセス装置。 - プロセッサと、
メインメモリと、
請求項1から請求項5の何れか1項に記載のデバイスアクセス装置と、
を備える演算装置。 - プロセッサと、
メインメモリと、
請求項1から請求項5の何れか1項に記載のデバイスアクセス装置と、
前記デバイスアクセス装置がアクセスするデバイスと、
を備えるデバイスアクセスシステム。 - プロセッサに代わってデバイスへMMIO方式でのアクセスを行うデバイスアクセス方法であって、
前記プロセッサの指示に基づいて、前記デバイスへ命令セットを発行し、
前記命令セットの発行が完了すると、前記プロセッサへ前記命令セットの完了を通知する、
デバイスアクセス方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019233656A JP6885627B1 (ja) | 2019-12-25 | 2019-12-25 | デバイスアクセス装置、演算装置、デバイスアクセスシステム及びデバイスアクセス方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019233656A JP6885627B1 (ja) | 2019-12-25 | 2019-12-25 | デバイスアクセス装置、演算装置、デバイスアクセスシステム及びデバイスアクセス方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6885627B1 JP6885627B1 (ja) | 2021-06-16 |
JP2021103387A true JP2021103387A (ja) | 2021-07-15 |
Family
ID=76310152
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019233656A Active JP6885627B1 (ja) | 2019-12-25 | 2019-12-25 | デバイスアクセス装置、演算装置、デバイスアクセスシステム及びデバイスアクセス方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6885627B1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002099498A (ja) * | 2000-09-25 | 2002-04-05 | Mitsubishi Electric Corp | プログラム実行装置およびプログラム開発支援装置 |
JP2007233534A (ja) * | 2006-02-28 | 2007-09-13 | Toshiba Corp | 情報処理装置およびメモリアドレス空間割り当て方法 |
JP2012212360A (ja) * | 2011-03-31 | 2012-11-01 | Nec Corp | 入出力制御装置、コンピュータ、及び制御方法 |
-
2019
- 2019-12-25 JP JP2019233656A patent/JP6885627B1/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002099498A (ja) * | 2000-09-25 | 2002-04-05 | Mitsubishi Electric Corp | プログラム実行装置およびプログラム開発支援装置 |
JP2007233534A (ja) * | 2006-02-28 | 2007-09-13 | Toshiba Corp | 情報処理装置およびメモリアドレス空間割り当て方法 |
JP2012212360A (ja) * | 2011-03-31 | 2012-11-01 | Nec Corp | 入出力制御装置、コンピュータ、及び制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP6885627B1 (ja) | 2021-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8151275B2 (en) | Accessing copy information of MMIO register by guest OS in both active and inactive state of a designated logical processor corresponding to the guest OS | |
JP5783809B2 (ja) | 情報処理装置、起動方法およびプログラム | |
JPS6122825B2 (ja) | ||
KR100515229B1 (ko) | 멀티프로세서 시스템에서 가상화된 물리적 메모리를관리하는 방법 및 시스템 | |
US20110087836A1 (en) | Storage unit and memory system | |
US8738890B2 (en) | Coupled symbiotic operating system | |
JPH04246745A (ja) | 情報処理装置及びその方法 | |
CN112783600A (zh) | 中断处理方法、中断管理器、电子设备、计算机可读介质 | |
JP5466768B2 (ja) | メモリ・アクセスを制御する装置およびコンピュータ | |
US20150268985A1 (en) | Low Latency Data Delivery | |
WO2021055908A1 (en) | Providing interrupts from an input-output memory management unit to guest operating systems | |
JP7470685B2 (ja) | 集積回路中の算出ユニットをプログラムおよび制御すること | |
US9697123B2 (en) | Information processing device, control method of information processing device and control program of information processing device | |
WO2008031678A1 (en) | Dmac address translation miss handling mechanism | |
JP5131269B2 (ja) | マルチプロセッシングシステム | |
US20180011636A1 (en) | Information processing apparatus and method of accessing a memory | |
JP6885627B1 (ja) | デバイスアクセス装置、演算装置、デバイスアクセスシステム及びデバイスアクセス方法 | |
CN116107697B (zh) | 一种不同操作系统之间互相通信的方法及系统 | |
JP5334048B2 (ja) | メモリ装置および計算機 | |
JPH11232213A (ja) | 入出力装置におけるデータ転送方式 | |
JPH01145770A (ja) | ベクトル処理装置 | |
US11003474B2 (en) | Semiconductor device for providing a virtualization technique | |
JP2007265143A (ja) | 情報処理方法、情報処理システム、情報処理装置、マルチプロセッサ、情報処理プログラム及び情報処理プログラムを記憶したコンピュータ読み取り可能な記憶媒体 | |
JP5949330B2 (ja) | 情報処理装置、情報処理方法 | |
JPH05250263A (ja) | 仮想プロセッサ方式及び不揮発化記憶方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210202 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210309 |
|
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: 20210413 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210506 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6885627 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |