(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-03-10
(54)【発明の名称】チップ、データ移行方法及び電子機器
(51)【国際特許分類】
G06F 12/0893 20160101AFI20230303BHJP
G06F 12/0897 20160101ALI20230303BHJP
【FI】
G06F12/0893
G06F12/0897
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022527673
(86)(22)【出願日】2021-06-22
(85)【翻訳文提出日】2022-05-12
(86)【国際出願番号】 CN2021101547
(87)【国際公開番号】W WO2022121278
(87)【国際公開日】2022-06-16
(31)【優先権主張番号】202011458676.7
(32)【優先日】2020-12-10
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】522162222
【氏名又は名称】上海陣量智能科技有限公司
(74)【代理人】
【識別番号】110000729
【氏名又は名称】弁理士法人ユニアス国際特許事務所
(72)【発明者】
【氏名】冷 祥▲綸▼
(72)【発明者】
【氏名】周 俊
(72)【発明者】
【氏名】王 文▲強▼
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205KK13
5B205KK16
5B205NN82
5B205UU31
5B205UU45
(57)【要約】
本発明は、チップ、データ移行方法及び電子機器を提出する。上記チップは、少なくとも1つの処理コアと少なくとも1つのメモリパーティションとを含んでもよい。各メモリパーティションは、キャッシュシステム、内部メモリシステム及び直接メモリアクセス(DMA)コントローラを含む。上記DMAコントローラは、上記キャッシュシステム及び上記内部メモリシステムにそれぞれ接続され、上記メモリパーティション内部の異なる記憶空間の間のデータ移行を行う。
【選択図】
図2
【特許請求の範囲】
【請求項1】
チップであって、
少なくとも1つの処理コアと、少なくとも1つのメモリパーティションとを含み、
メモリパーティションごとに、
前記メモリパーティションは、キャッシュシステム、内部メモリシステム及び直接メモリアクセス(DMA)コントローラを含み、
前記DMAコントローラは、前記キャッシュシステム及び前記内部メモリシステムにそれぞれ接続され、前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うことを特徴とするチップ。
【請求項2】
前記DMAコントローラが前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うことは、
前記キャッシュシステムの異なる記憶空間の間のデータ移行と、
前記内部メモリシステム内の異なる記憶空間の間のデータ移行と、
前記キャッシュシステムの記憶空間と前記内部メモリシステム内の記憶空間との間のデータ移行とのうちの少なくとも1つを含むことを特徴とする請求項1に記載のチップ。
【請求項3】
前記キャッシュシステムは、複数レベルのキャッシュを含み、
前記DMAコントローラが前記キャッシュシステムの記憶空間と前記内部メモリシステム内の記憶空間との間のデータ移行を行うことは、前記DMAコントローラが最終レベルのキャッシュの記憶空間と前記内部メモリシステム内の記憶空間との間のデータ移行を行うことを含むことを特徴とする請求項2に記載のチップ。
【請求項4】
前記最終レベルのキャッシュは、第1動作モードと第2動作モードと第3動作モードとの3種の動作モードをサポートし、
第1動作モードでは、前記最終レベルのキャッシュの全部の記憶空間がキャッシュメモリとして配置され、
第2動作モードでは、前記最終レベルのキャッシュの全部の記憶空間がスクラッチパッドメモリ(SPM)として配置され、
第3動作モードでは、前記最終レベルのキャッシュの一部の記憶空間がキャッシュメモリとして配置され、他の一部の記憶空間がSPMとして配置されることを特徴とする請求項3に記載のチップ。
【請求項5】
前記メモリパーティションは、ユーザ配置情報に基づいて前記最終レベルのキャッシュの動作モードを配置するためのモード配置器を更に含むことを特徴とする請求項4に記載のチップ。
【請求項6】
前記少なくとも1つの処理コアと前記DMAコントローラとは、メインネットワークオンチップを介して互いにアクセスし、又は、
前記DMAコントローラ、前記キャッシュシステム及び前記内部メモリシステムは、サブネットワークオンチップを介して互いにアクセスすることを特徴とする請求項1~5の何れか一項に記載のチップ。
【請求項7】
前記メモリパーティション中の異なる記憶空間の全部又は一部は、統合メモリアーキテクチャ(UMA)を採用することを特徴とする請求項1~6の何れか一項に記載のチップ。
【請求項8】
前記少なくとも1つの処理コアのうちの第1処理コアは、少なくとも1つの第1メモリパーティションに含まれる少なくとも1つの第1DMAコントローラへデータ移行指令を送信し、
前記少なくとも1つの第1DMAコントローラは、前記データ移行指令に基づいて、前記少なくとも1つの第1メモリパーティション内部の異なる記憶空間の間のデータ移行を行うことを特徴とする請求項1~7の何れか一項に記載のチップ。
【請求項9】
前記第1処理コアが前記少なくとも1つの第1DMAコントローラへデータ移行指令を送信することは、前記第1処理コアが少なくとも1つの第2DMAコントローラへデータ移行指令をブロードキャストすることを含み、前記第2DMAコントローラは、前記異なる記憶空間の全部がUMAを採用する第1メモリパーティションに含まれることを特徴とする請求項8に記載のチップ。
【請求項10】
前記データ移行指令は、データ移行タイプ、データ長、ソース記憶アドレス及び宛先記憶アドレスを含むことを特徴とする請求項8又は9に記載のチップ。
【請求項11】
前記データ移行指令は、第1フィールド、第2フィールド、第3フィールド及び第4フィールドを含み、
前記第1フィールドは、前記データ移行タイプ及び前記データ長を示すために用いられ、
前記第2フィールドは、前記ソース記憶アドレスの下位アドレスを示すために用いられ、
前記第3フィールドは、前記ソース記憶アドレスの上位アドレス及び前記宛先記憶アドレスの上位アドレスを示すために用いられ、
前記第4フィールドは、前記宛先記憶アドレスの下位アドレスを示すために用いられることを特徴とする請求項10に記載のチップ。
【請求項12】
前記DMAコントローラが前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うことは、
前記メモリパーティション内の第1記憶空間からデータを読み取り、読み取られたデータを前記メモリパーティション内の第2記憶空間に書き込むことを含むことを特徴とする請求項1~11の何れか一項に記載のチップ。
【請求項13】
前記内部メモリシステムは、高帯域幅メモリ(HBM)であることを特徴とする請求項1~12の何れか一項に記載のチップ。
【請求項14】
チップに用いられるデータ移行方法であって、
前記チップは、少なくとも1つの処理コアと、少なくとも1つのメモリパーティションとを含み、各メモリパーティションは、キャッシュシステム、内部メモリシステム及び直接メモリアクセス(DMA)コントローラを含み、
前記データ移行方法は、メモリパーティションごとに、前記DMAコントローラを介して前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うステップを含むことを特徴とするデータ移行方法。
【請求項15】
前記キャッシュシステムは、複数レベルのキャッシュを含み、
前記DMAコントローラを介して前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うステップは、
前記DMAコントローラを介して最終レベルのキャッシュの記憶空間と前記内部メモリシステム内の記憶空間との間のデータ移行を行うことを含むことを特徴とする請求項14に記載のデータ移行方法。
【請求項16】
ユーザ配置情報に基づいて前記最終レベルのキャッシュの動作モードを配置するステップを更に含むことを特徴とする請求項15に記載のデータ移行方法。
【請求項17】
前記DMAコントローラを介して前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うステップは、
前記少なくとも1つの処理コアのうちの第1処理コアを介して、少なくとも1つの第1メモリパーティションに含まれる少なくとも1つの第1DMAコントローラへデータ移行指令を送信することと、
前記少なくとも1つの第1DMAコントローラが、前記データ移行指令に基づいて、前記少なくとも1つの第1メモリパーティション内部の異なる記憶空間の間のデータ移行を行うことと、を含むことを特徴とする請求項14~16の何れか一項に記載のデータ移行方法。
【請求項18】
前記第1処理コアを介して前記少なくとも1つの第1DMAコントローラへ前記データ移行指令を送信することは、前記第1処理コアを介して少なくとも1つの第2DMAコントローラへデータ移行指令をブロードキャストすることを含み、
前記第2DMAコントローラは、前記異なる記憶空間の全部が統合メモリアーキテクチャ(UMA)を採用する第1メモリパーティションに含まれることを特徴とする請求項17に記載のデータ移行方法。
【請求項19】
前記DMAコントローラを介して前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うステップは、
前記DMAコントローラを介して前記メモリパーティション内の第1記憶空間からデータを読み取り、読み取られたデータを前記メモリパーティション内の第2記憶空間に書き込むことを含むことを特徴とする請求項14~18の何れか一項に記載のデータ移行方法。
【請求項20】
請求項1から13の何れか一項に記載のチップを備えることを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ技術に関し、具体的にチップ、データ移行方法及び電子機器に関する。
<関連出願の相互引用>
本願は、2020年12月10日に中国専利局へ提出された、出願番号が202011458676.7である中国特許出願の優先権を要求し、当該中国特許出願の全ての内容が引用によって本願に組み込まれる。
【背景技術】
【0002】
コンピュータ技術の迅速な発展につれ、各種のチップの演算能力は、徐々に高くなってきている。その一方、チップ演算能力の向上には、高いデータ移行効率が要求されている。
【0003】
関連技術では、チップ内部のメモリパーティションにおいて第1記憶空間と第2記憶空間との間のデータ移行を行う必要があるときに、処理コアは、まず、データを第1記憶空間から読み出して当該処理コア内に記憶する必要がある。次に、当該処理コアは、記憶された当該データを読み出して第2記憶空間に書き込む。
【発明の概要】
【発明が解決しようとする課題】
【0004】
これにより、関連技術において、メモリパーティション内部の異なる記憶空間の間でデータ移行を行うために、処理コアを使用せざるを得ないので、データ移行効率が低いことが分かる。
【0005】
これに鑑みて、本発明は、チップを開示する。
【課題を解決するための手段】
【0006】
上記チップは、少なくとも1つの処理コアと、少なくとも1つのメモリパーティションとを含み、メモリパーティションごとに、上記メモリパーティションは、キャッシュシステム、内部メモリシステム及び直接メモリアクセス(DMA)コントローラを含み、上記DMAコントローラは、上記キャッシュシステム及び上記内部メモリシステムにそれぞれ接続され、上記メモリパーティション内部の異なる記憶空間の間のデータ移行を行う。示された一実施例において、上記少なくとも1つの処理コアのうちの第1処理コアは、少なくとも1つの第1DMAコントローラへデータ移行指令を送信する。上記少なくとも1つの第1DMAコントローラは、少なくとも1つの第1メモリパーティションに含まれる。上記少なくとも1つの第1DMAコントローラは、上記データ移行指令に基づいて、上記少なくとも1つの第1メモリパーティション内部の異なる記憶空間の間のデータ移行を行う。
【0007】
示された一実施例において、上記キャッシュシステムは、複数レベルのキャッシュを含み、上記DMAコントローラが上記キャッシュシステムの記憶空間と上記内部メモリシステム内の記憶空間との間のデータ移行を行うことは、上記DMAコントローラが上記最終レベルのキャッシュの記憶空間と上記内部メモリシステム内の記憶空間との間のデータ移行を行うことを含む。
【0008】
示された一実施例において、上記最終レベルのキャッシュは、第1動作モードと第2動作モードと第3動作モードとの3種の動作モードをサポートし、第1動作モードでは、上記最終レベルのキャッシュの全部の記憶空間がキャッシュメモリとして配置され、第2動作モードでは、上記最終レベルのキャッシュの全部の記憶空間がスクラッチパッドメモリ(SPM)として配置され、第3動作モードでは、上記最終レベルのキャッシュの一部の記憶空間がキャッシュメモリとして配置され、他の一部の記憶空間がSPMとして配置される。
【0009】
示された一実施例において、上記メモリパーティションは、モード配置器を更に含み、上記モード配置器は、ユーザ配置情報に基づいて、上記最終レベルのキャッシュの動作モードを配置する。
【0010】
示された一実施例において、上記少なくとも1つの処理コアと上記DMAコントローラとは、メインネットワークオンチップを介して互いにアクセスし、又は、上記DMAコントローラ、上記キャッシュシステム及び上記内部メモリシステムは、サブネットワークオンチップを介して互いにアクセスする。
【0011】
示された一実施例において、上記DMAコントローラが上記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うことは、上記キャッシュシステムの異なる記憶空間の間のデータ移行と、上記内部メモリシステム内の異なる記憶空間の間のデータ移行と、上記キャッシュシステムの記憶空間と上記内部メモリシステム内の記憶空間との間のデータ移行とのうちの少なくとも1つを含む。
【0012】
示された一実施例において、上記メモリパーティション中の異なる記憶空間の全部又は一部は、統合メモリアーキテクチャ(UMA)を採用する。
【0013】
示された一実施例において、上記第1処理コアが上記少なくとも1つの第1DMAコントローラへデータ移行指令を送信することは、上記第1処理コアが少なくとも1つの第2DMAコントローラへデータ移行指令をブロードキャストすることを含み、上記第2DMAコントローラは、上記異なる記憶空間の全部がUMAを採用する第1メモリパーティションに含まれる。
【0014】
示された一実施例において、上記データ移行指令は、データ移行タイプ、データ長、ソース記憶アドレス及び宛先記憶アドレスを含む。
【0015】
示された一実施例において、上記データ移行指令は、第1フィールド、第2フィールド、第3フィールド及び第4フィールドを含み、上記第1フィールドは、上記データ移行タイプ及び上記データ長を示すために用いられ、上記第2フィールドは、上記ソース記憶アドレスの下位アドレスを示すために用いられ、上記第3フィールドは、上記ソース記憶アドレスの上位アドレス及び上記宛先記憶アドレスの上位アドレスを示すために用いられ、上記第4フィールドは、上記宛先記憶アドレスの下位アドレスを示すために用いられる。
【0016】
示された一実施例において、上記DMAコントローラが上記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うことは、上記メモリパーティション内の第1記憶空間からデータを読み取り、読み取られたデータを上記メモリパーティション内の第2記憶空間に書き込むことを含む。
【0017】
示された一実施例において、上記内部メモリシステムは、高帯域幅メモリ(HBM)である。
【0018】
本発明は、チップに用いられるデータ移行方法を更に提出する。上記チップは、少なくとも1つの処理コアと、少なくとも1つのメモリパーティションとを含み、各メモリパーティションは、キャッシュシステム、内部メモリシステム、及び直接メモリアクセスDMAコントローラを含み、上記方法は、メモリパーティションごとに、上記DMAコントローラを介して上記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うステップを含む。
【0019】
示された一実施例において、上記DMAコントローラを介して上記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うステップは、上記少なくとも1つの処理コアのうちの第1処理コアを介して、少なくとも1つの第1メモリパーティションに含まれる少なくとも1つの第1DMAコントローラへデータ移行指令を送信することと、上記少なくとも1つの第1DMAコントローラが、上記データ移行指令に基づいて、上記少なくとも1つの第1メモリパーティション内部の異なる記憶空間の間のデータ移行を行うことと、を含む。
【0020】
示された一実施例において、上記キャッシュシステムは、複数レベルのキャッシュを含み、上記DMAコントローラを介して上記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うステップは、上記DMAコントローラを介して最終レベルのキャッシュの記憶空間と上記内部メモリシステム内の記憶空間との間のデータ移行を行うことを含む。
【0021】
示された一実施例において、上記最終レベルのキャッシュは、第1動作モードと第2動作モードと第3動作モードとの3種の動作モードをサポートし、第1動作モードでは、上記最終レベルのキャッシュの全部の記憶空間がキャッシュメモリとして配置され、第2動作モードでは、上記最終レベルのキャッシュの全部の記憶空間がSPMとして配置され、第3動作モードでは、上記最終レベルのキャッシュの一部の記憶空間がキャッシュメモリとして配置され、他の一部の記憶空間がSPMとして配置される。
【0022】
示された一実施例において、上記メモリパーティションは、モード配置器を更に含み、上記方法は、ユーザ配置情報に基づいて、上記モード配置器を介して、上記最終レベルのキャッシュの動作モードを配置するステップを更に含む。
【0023】
示された一実施例において、上記少なくとも1つの処理コアと上記DMAコントローラとは、メインネットワークオンチップを介して互いにアクセスし、及び/又は、上記DMAコントローラ、上記キャッシュシステム及び上記内部メモリシステムは、サブネットワークオンチップを介して互いにアクセスする。
【0024】
示された一実施例において、上記メモリパーティション内部の異なる記憶空間の間のデータ移行は、上記キャッシュシステムの異なる記憶空間の間のデータ移行と、上記内部メモリシステム内の異なる記憶空間の間のデータ移行と、上記キャッシュシステムの記憶空間と上記内部メモリシステム内の記憶空間との間のデータ移行とのうちの少なくとも1つを含む。
【0025】
示された一実施例において、上記メモリパーティション中の異なる記憶空間の全部又は一部は、統合メモリアーキテクチャ(UMA)を採用する。
【0026】
示された一実施例において、上記第1処理コアを介して上記少なくとも1つの第1DMAコントローラへ上記データ移行指令を送信することは、上記第1処理コアを介して少なくとも1つの第2DMAコントローラへデータ移行指令をブロードキャストすることを含み、上記第2DMAコントローラは、上記異なる記憶空間の全部が統合メモリアーキテクチャ(UMA)を採用する第1メモリパーティションに含まれる。
【0027】
示された一実施例において、上記データ移行指令は、データ移行タイプ、データ長、ソース記憶アドレス及び宛先記憶アドレスを含む。
【0028】
示された一実施例において、上記データ移行指令は、第1フィールド、第2フィールド、第3フィールド及び第4フィールドを含み、上記第1フィールドは、上記データ移行タイプ及び上記データ長を示すために用いられ、上記第2フィールドは、上記ソース記憶アドレスの下位アドレスを示すために用いられ、上記第3フィールドは、上記ソース記憶アドレスの上位アドレス及び上記宛先記憶アドレスの上位アドレスを示すために用いられ、上記第4フィールドは、上記宛先記憶アドレスの下位アドレスを示すために用いられる。
【0029】
示された一実施例において、上記DMAコントローラを介して上記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うステップは、上記DMAコントローラを介して上記メモリパーティション内の第1記憶空間からデータを読み取り、読み取られたデータを上記メモリパーティション内の第2記憶空間に書き込むことを含む。
【0030】
示された一実施例において、上記内部メモリシステムは、高帯域幅メモリ(HBM)である。
【0031】
本発明は、電子機器を更に提出する。当該電子機器は、上記何れかの実施例に示すチップを備える。
【発明の効果】
【0032】
上記技術案から分かるように、上記DMAコントローラが上記キャッシュシステム及び上記内部メモリシステムにそれぞれ接続され、且つ上記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うため、上記チップのメモリアクセス帯域幅を占用せずに、上記データを制御して上記メモリパーティション内部の移行を完了させることができる。これにより、上記データ移行中において、当該チップ内部のメモリアクセス帯域幅が解放され、データ移行効率が高められ、チップ性能が向上する。
【0033】
更に、上記処理コアが上記DMAコントローラへデータ移行指令を送信し、上記DMAが上記データ移行指令に応答して上記メモリパーティション中の異なる記憶空間の間のデータ移行を制御可能であるため、移行すべきデータについて上記メモリパーティション内部で移行を完了させることができる。これにより、当該チップ内部のメモリアクセス帯域幅が解放され、データ移行効率が高められ、チップ性能が向上する。
【0034】
更に、上記チップがメモリパーティションデータ移行効率を向上可能であり、より高い性能を有するため、当該チップを使用することにより、計算タスクの処理効率の向上を支援することができ、電子機器の性能を向上させる。
【0035】
上述した一般的な記述と後文の詳細記述が単に例示的なものと解釈的なものであり、本発明を制限するためのものではないことは、理解されるべきである。
【図面の簡単な説明】
【0036】
本発明の1つ若しくは複数の実施例又は関連技術における技術案がより明瞭に説明されるように、以下では、実施例又は関連技術の記述に使用必要な図面を簡単に紹介する。明らかに、以下の記述に係る図面が単に本発明の1つ又は複数の実施例に記載の幾つかの実施例に過ぎず、当業者であれば、進歩性に値する労力を掛けずにこれらの図面から他の図面を取得可能である。
【
図5】本発明に示すデータ移行指令の模式図である。
【
図6】本発明に示すデータ移行指令の模式図である。
【
図7】本発明に示すデータ移行方法の方法フローチャートである。
【発明を実施するための形態】
【0037】
ここで、例示的な実施例を詳細に説明する。その例示は、図面に示される。以下の記述は、図面に係る際、別途示さない限り、異なる図面における同じ符号が同じ又は類似する要素を示す。以下の例示的な実施例に記述される実施形態が本発明と一致する全ての実施形態を代表するわけではない。逆に、それらは、単に添付する特許請求の範囲に詳細に記述されるような、本発明の幾つかの態様に一致する装置及び方法の例である。
【0038】
本発明で使用される用語は、単に特定の実施例を記述する目的であり、本発明を制限するためのものではない。本発明及び添付する特許請求の範囲で使用される単数形式の「1種」、「上記」及び「当該」も、文脈から他の意味を明瞭で分かる場合でなければ、複数の形式を含むことを意図する。理解すべきことは、本文で使用される用語「及び/又は」が、1つ又は複数の関連する列挙項目を含む如何なる或いは全ての可能な組み合わせを指す。更に、本文で使用される言葉「場合」は、コンテキストに依存し、「…とき」や「…ときに」あるいは「特定の状況に応じて」として解釈されてもよい。
【0039】
コンピュータ技術の迅速な発展につれ、各種のチップの演算能力は、徐々に高くなってきている。その一方、チップ演算能力の向上には、高いデータ移行効率が要求されている。
【0040】
図1を参照すると、
図1は、AIチップの内部構造図である。
【0041】
図1に示すように、AIチップの処理コアは、メモリパーティションに接続され、上記メモリパーティションは、少なくとも内部メモリシステム及びキャッシュシステムを含む。
【0042】
図1に示すAIチップにおいて、キャッシュシステムへ移行する必要がある一部のデータが内部メモリシステムにある場合に、まず、処理コアは、リードコマンドにより当該部分のデータを内部メモリシステムから読み出して当該処理コア内に記憶し、次に、当該処理コアは、ライトコマンドにより当該部分のデータを上記キャッシュシステムに書き込む。
【0043】
このように、上記キャッシュシステムと上記内部メモリシステムとの間でデータ移行を行うには、少なくとも2回メモリアクセス帯域幅を占用する必要がある。これは、データ移行遅延を大きくするだけでなく、メモリアクセス帯域幅をプリエンプションし、チップ性能を大幅に低下させる。当業者であれば理解できるように、上記キャッシュシステムの内部及び当該内部メモリシステムの内部のデータ移行は、同様に上記問題が存在し、ここで詳しく説明しない。
【0044】
これに鑑みて、本発明は、チップを提供する。当該チップは、メモリパーティションに、キャッシュシステム及び内部メモリシステムにそれぞれ接続されるDMA(Direct Memory Access、直接メモリアクセス)コントローラを追加することにより、上記DMAが上記メモリパーティション内部の異なる記憶空間の間のデータ移行指令を実行できるようにする。これにより、当該チップ内部のメモリアクセス帯域幅を解放し、データ移行効率を向上させ、チップ性能を向上させる。
【0045】
以下では、このチップの内部構造について説明する。
【0046】
図2を参照すると、
図2は、本発明に示すチップの内部構造である。
図2に示すように、上記チップは、以下を含む。
【0047】
少なくとも1つの処理コア21と少なくとも1つのメモリパーティション22を含む。
【0048】
各メモリパーティション22は、キャッシュシステム221、内部メモリシステム222及びDMAコントローラ223を含む。
【0049】
上記DMAコントローラ223は、上記キャッシュシステム221及び上記内部メモリシステム222にそれぞれ接続され、上記メモリパーティション22内部の異なる記憶空間の間のデータ移行を行う。
【0050】
説明すべきことは、上記キャッシュシステム221と上記内部メモリシステム222との間のデータ移行を制御する場合に、上記キャッシュシステム221に含まれる最終レベルのキャッシュは、上記DMAコントローラ223に接続されてもよい。上記キャッシュシステム221の内部のデータ移行を制御する場合に、上記DMAコントローラ223は、対応するレベルのキャッシュに接続することができる。ここでは、特に限定されない。
【0051】
実際の応用において、上記DMAコントローラは、上記メモリパーティション内の第1記憶空間からデータを読み取り、読み取られたデータを上記メモリパーティション内の第2記憶空間に書き込んでもよい。
【0052】
例えば、上記第1記憶空間は、内部メモリシステムであり、上記第2記憶空間は、L2キャッシュである。上記DMAコントローラは、上記処理コアから送信されたデータ移行指令に応答し、上記内部メモリシステムと上記L2キャッシュとの間のデータ移行を制御してもよい。
【0053】
説明すべきことは、1つのメモリパーティションは、1つ又は複数のDMAコントローラを含んでもよい。例えば、メモリパーティションは、1つのDMAコントローラを含み、当該メモリパーティション内の全ての記憶空間の間のデータ移行を担う。更に例えば、メモリパーティションは、複数のDMAコントローラを含み、当該複数のDMAコントローラのうちの各DMAコントローラは、メモリパーティションにおける一対又は複数対の記憶空間の間のデータ移行を担うことができる。複数のメモリパーティションが存在するときに、本発明は、これらのDMAコントローラの具体的な位置を限定しない。例えば、DMAコントローラは、各メモリパーティションに分散して位置してもよく、そのうちの1つのメモリパーティションに集中して位置してもよい。
【0054】
上記チップは、具体的に、任意の高いメモリアクセス帯域幅を必要とするチップであってもよい。実際の応用において、上記チップは、マルチチャネルのDRAM(Dynamic Random Access Memory、ダイナミックランダムアクセスメモリ)を搭載したチップであってもよい。
【0055】
例えば、上記チップは、CPU、DSP、MCUなどであってもよい。一実施例において、上記チップは、人工知能アルゴリズムを実行してもよい。例えば、上記チップは、AIニューラルネットワークチップ(例えば、FPGA、TPU等)又はGPUグラフィック処理チップであってもよい。
【0056】
上記処理コアは、一般的にチップ内の計算コアであり、コード演算を実行し、1つ又は複数の処理ユニットを含んでもよい。例えば、上記処理コアは、一般的に開発者によって作成されたプログラムコードに基づいて、上記メモリパーティションでデータ移行を行ってもよい。
【0057】
実際の応用において、上記メモリパーティション内部の記憶空間の間のデータ移行は、一般的に、上記メモリパーティション内のキャッシュシステムの内部データの移行、上記メモリパーティション内の内部メモリシステムの内部データの移行、及び上記メモリパーティションにおける最終レベルのキャッシュと内部メモリシステムとの間のデータ移行を含んでもよい。
【0058】
上記メモリパーティションは、一般的にデータを記憶するために用いられる。
【0059】
実際の応用において、一般的に、チップは、記憶階層を有するメモリパーティションを採用する。ここで、上記メモリパーティションは、1レベル又は複数レベルのキャッシュを有するキャッシュシステム及び内部メモリシステムを含んでもよい。
【0060】
例えば、引き続き
図2を参照すると、上記キャッシュシステム221は、少なくともL1、L2及びL3キャッシュを含んでもよい。その際、処理コア21は、データを取得する必要があるとき、一般的にまずL1キャッシュにアクセスする。当該L1キャッシュに上記処理コア21に必要なデータが記憶されている場合に、上記処理コア21は、今回のデータ取得を完了する。当該L1キャッシュに上記処理コア21に必要なデータが記憶されていない場合に、上記処理コア21は、上記L2キャッシュにアクセスし続けて必要なデータを取得する。これによって類推する。上記最終レベルのキャッシュ即ちL3キャッシュにも処理コア21に必要なデータがないときに、上記処理コア21は、引き続き上記内部メモリシステム222からデータを取得する。
【0061】
上記例から分かりやすいように、チップ性能は、キャッシュヒット率(CHCHE HIT)に大きく依存する。キャッシュヒット率を向上させるために、現在、チップにおいて開発者によって直接に管理され得る大容量キャッシュを提供し、それによりキャッシュヒット率を向上させる。
【0062】
通常、上記キャッシュシステムが複数レベルのキャッシュを含む場合、最終レベルのキャッシュは、上記大容量キャッシュとしてもよく、上記DMAコントローラは、上記最終レベルのキャッシュの記憶空間と上記内部メモリシステム内の記憶空間との間のデータ移行を行う。
【0063】
キャッシュシステムの少なくとも一部の記憶空間は、スクラッチパッドメモリ(Scratchpad Memory、SPM)として配置されたとき、この部分の記憶空間のデータ移行効率へ影響を与える。一実施例において、データ移行効率を向上させるために、最終レベルのキャッシュの少なくとも一部の記憶空間は、SPMとして配置される。
【0064】
その際、データ移行を行うときに、上記DMAコントローラは、上記最終レベルのキャッシュ中のSPMとして配置される記憶空間と上記内部メモリシステムとの間のデータ移行を行う。DMAコントローラを介して上記最終レベルのキャッシュ中のSPMとして配置される記憶空間と上記内部メモリシステムとの間のデータ移行を行うことにより、移行されたデータが処理コアを通過することを回避することができるため、それにより帯域幅を解放し、データ移行経路を短縮し、データ移行効率を向上させる。
【0065】
一実施例において、様々な業務シーンに柔軟に適用するために、上記キャッシュシステムの最終レベルのキャッシュが3種類の動作モードをサポートする。第1動作モードでは、上記最終レベルのキャッシュの全ての記憶空間がキャッシュメモリとして配置され、第2動作モードでは、上記最終レベルのキャッシュの全ての記憶空間がSPMとして配置され、第3動作モードでは、上記最終レベルのキャッシュの一部の記憶空間がキャッシュメモリとして配置され、他の一部の記憶空間がSPMとして配置される。
【0066】
このような方式により、開発者は、需要に応じて上記最終レベルのキャッシュを柔軟に配置することができ、それにより上記チップの適用性を向上させる。
【0067】
説明すべきことは、最終レベルのキャッシュを動的に設定することを実現するために、実施例において、上記メモリパーティションは、更にモード配置器を含んでもよい。
【0068】
上記モード配置器は、ユーザ配置情報に基づいて、上記キャッシュシステムにおける最終レベルのキャッシュの動作モードを設定する。
【0069】
実際の応用において、開発者は、ユーザ配置情報に基づいて、上記モード配置器により、上記最終レベルのキャッシュの動作モードを設定してもよい。
【0070】
例えば、マルチチップカスケード分散型トレーニングシステムのシーンにおいて、チップ間の通信が高容量、低遅延を必要とするため、上記最終レベルのキャッシュの全ての内部メモリ空間をSPMとして配置してもよい。
【0071】
更に例えば、性能に対する要求が高くないアルゴリズム開発のシーンにおいて、開発者の間で最終レベルのキャッシュを管理する必要がないため、上記最終レベルのキャッシュの全ての記憶空間をキャッシュメモリとして配置してもよい。
【0072】
更に例えば、データ伝送効率を必要とするだけでなく、データの再利用率も重視するシーンにおいて、AI演算パラメータを記憶するために、上記最終レベルのキャッシュの一部の記憶空間をキャッシュメモリとして配置し、他の一部の記憶空間をSPMとして配置してもいい。
【0073】
上記内部メモリシステムは、グローバル内部メモリシステムであってもよい。例えば、DRAM(Dynamic Random Access Memory、ダイナミックランダムアクセスメモリ)、SDRAM(synchronous dynamic random-access memory)等であってもよい。
【0074】
一実施例において、メモリアクセス帯域幅を向上させるために、上記グローバル内部メモリシステムは、高帯域メモリ(High Bandwidth Memory、HBM)であってもよい。
【0075】
説明すべきことは、上記チップ内部は、バス又はNOC(network-on-chip、ネットワークオンチップ)アーキテクチャを採用可能であり、実際の需要に応じて設定されてもよい。関連技術において、
図3を参照すると、
図3は、本発明に示すチップ構造図である。
図3に示すように、上記DMAコントローラ、少なくとも1つの処理コア及び少なくとも1つのメモリパーティションは、バスを介して互いに接続される。
【0076】
その際、メモリパーティション内部の内部メモリシステムがL2キャッシュへデータを移行する必要があると仮定する場合、処理コアは、上記DMAコントローラへデータ移行指令を送信することにより、DMAコントローラにデータ移行を完了させる。
【0077】
しかし、上記チップ構造において、DMAコントローラを介してチップの処理コアの動作負担を解放したとしても、上記データは、移行過程において、まず内部メモリシステムから処理コアへ流れ、次にL2キャッシュへ流れる必要がある。このように、上記チップ構造を採用すると、データ移行がメモリアクセス帯域幅をプリエンプションしてデータ移行効率が低いという問題が依然として存在する。
【0078】
上記問題を解決するために、
図2に示すように、本発明において上記DMAコントローラが上記メモリパーティション内に内蔵されることにより、DMAコントローラが上記データを制御することができるようにする。これにより、上記チップのメモリアクセス帯域幅をプリエンプションすることなく、上記メモリパーティション内部に移行を完了することができる。
【0079】
上記技術案から分かるように、上記DMAコントローラは、上記キャッシュシステム及び上記内部メモリシステムにそれぞれ接続され、且つ上記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うため、上記データを制御することができ、それにより、上記チップのメモリアクセス帯域幅をプリエンプションせず、上記メモリパーティション内部に移行を完了することができ、更に上記データ移行過程において、当該チップ内部のメモリアクセス帯域幅を解放し、データ移行効率を高め、チップ性能を向上させる。
【0080】
一実施例において、上記少なくとも1つの処理コアのうちの第1処理コアは、少なくとも1つの第1DMAコントローラに接続され、少なくとも1つの第1DMAコントローラは、少なくとも1つの第1メモリパーティションに含まれ、上記第1メモリパーティションは、上記メモリパーティションの全部又は一部であってもよい。
【0081】
上記第1処理コアは、上記少なくとも1つの第1DMAコントローラへデータ移行指令を送信する。
【0082】
上記少なくとも1つのDMAコントローラは、上記データ移行指令に基づいて、上記少なくとも1つの第1メモリパーティション内部の異なる記憶空間の間のデータ移行を行う。
【0083】
引き続き
図2を参照すると、上記DMAコントローラは、上記第1処理コアに接続される。上記接続方式は、バス方式の接続であってもよい。
【0084】
一実施例において、チップ性能を更に向上させるために、上記DMAコントローラ及び上記処理コアは、メインネットワークオンチップ(NOC、network-on-chip)を介して互いにアクセスしてもよい。
【0085】
上記メインネットワークオンチップは、上記チップ内のメインネットワークであってもよい。上記チップが複数の処理コア及び複数のメモリパーティションを含むときに、上記複数の処理コアと上記複数のメモリパーティション内のDMAコントローラとは、上記メインネットワークオンチップを介して互いにアクセスしてもよい。
【0086】
引き続き
図2を参照すると、上記DMAコントローラは、上記キャッシュシステム及び上記内部メモリシステムにそれぞれ接続される。上記接続方式は、バス方式の接続であってもよい。
【0087】
一実施例において、チップ性能を更に向上させるために、上記DMAコントローラ、上記キャッシュシステム及び上記内部メモリシステムは、サブネットワークオンチップを介して互いにアクセスする。
【0088】
上記サブネットワークオンチップは、上記メモリパーティション内のサブネットワークであってもよい。上記チップが複数のメモリパーティションを含むときに、上記複数のメモリパーティションは、何れも上記サブネットワークオンチップを採用してもよい。これにより、各メモリパーティション内のDMAコントローラ、キャッシュシステム及び内部メモリシステムは、上記サブネットワークオンチップ(NOC、network-on-chip)を介して互いにアクセスすることができる。
【0089】
単一メモリパーティション(キャッシュシステム及び内部メモリシステムを含む)の帯域幅及び容量が限られているため、メモリアクセス帯域幅及びチップ容量を向上させるために、一実施例において、上記チップは、一般的に複数のメモリパーティションを含んでもよい。これらのメモリパーティションは、並列に処理コアに接続されてもよい。
【0090】
図4を参照すると、
図4は、本発明に示すチップ構造図である。
図4に示すように、上記チップは、複数の処理コア及び複数のメモリパーティションを含む。説明すべきことは、メモリパーティションには、キャッシュシステムにおける最終レベルのキャッシュのみが示され、他のレベルのキャッシュが
図4に示されていない。
【0091】
上記チップ内の複数の処理コアと複数のメモリパーティションとは、上記メインネットワークオンチップを介して互いにアクセスしてもよい。
【0092】
上記方式を採用すると、マルチメモリパーティションの並列接続を実現する。これにより、メモリアクセス帯域幅及びチップ容量を拡張する。
【0093】
上記状況、即ち上記チップは複数のメモリパーティションを含む場合、開発者によるプログラミングを容易にするために、上記複数のメモリパーティションは、何れも統合メモリアーキテクチャ(UMA、Unified Memory Architecture)を採用する。
【0094】
実際の応用において、上記複数のメモリパーティションにおける最終レベルのキャッシュは、UMAを採用してもよい。上記複数のメモリパーティションにおける内部メモリシステムは、UMAを採用してもよい。
【0095】
このような方式により、開発者にとって、異なる最終レベルのキャッシュの間の有効なアドレス(effective address)が同じであり、異なる内部メモリシステムの間の有効なアドレスも同じである。したがって、各最終レベルのキャッシュ、又は、各内部メモリシステムにデータを書き込むときに、1つのアドレスを入力すればよく、複数の最終レベルのキャッシュ又は複数の内部メモリシステムに対してそれぞれデータを書き込む必要がなく、開発者のプログラミング効率を向上させ、データの記憶効率も向上させる。
【0096】
各処理コアは、1つ又は複数のDMAコントローラへそれぞれデータ移行指令を送信してもよく、幾つかの実施例において、DMAコントローラに対する呼び出しオーバーヘッドを低減するために、上記処理コアは、上記少なくとも1つのメモリパーティション中の少なくとも1つのDMAコントローラへデータ移行指令をブロードキャストしてもよい。
【0097】
実際の応用において、メモリパーティション内でデータ移行を行う必要があるときに、処理コアは、上記複数のメモリパーティション内のDMAコントローラへデータ移行指令をブロードキャストして送信してもよい。
【0098】
例えば、チップは、8つのメモリパーティションを含んでもよいと仮定する。上記8つのメモリパーティションのうち、4つのメモリパーティションの最終レベルのキャッシュ(最終レベルのキャッシュがL2キャッシュであると仮定する)と、上記複数のメモリパーティション内の内部メモリシステムは、何れもUMAを採用してもよい。
【0099】
上記状況において、内部メモリシステムから8MのデータをL2キャッシュに移行する必要があるときに、実際には、各メモリパーティション内で1メガのデータの移行を完了する必要がある。その際、処理コアは、上記UMAを採用している4つのメモリパーティション内のDMAコントローラへデータ移行指令をブロードキャストして送信してもよい。一方では、UMAを採用していない4つのメモリパーティション内のDMAコントローラへデータ移行指令をそれぞれ送信してもよい。
【0100】
上記各DMAコントローラは、データ移行指令を受信した後、内部メモリシステムの上記データ移行指令で示された記憶位置から1メガのデータを抽出し、上記1メガのデータをL2キャッシュの上記データ移行指令で示された記憶位置に移行することにより、データ移行を完了してもよい。
【0101】
処理コアは、UMAを採用した複数のメモリパーティション内のDMAコントローラへデータ移行指令をブロードキャストして送信することにより、各メモリパーティション内部のデータ移行を完了してもよい。したがって、処理コアのDMAコントローラへの呼び出し回数を減少させ、それによりDMAコントローラに対する呼び出しオーバーヘッドを低減する。
【0102】
一実施例において、上記チップに含まれる複数の上記DMAコントローラは、同じメモリパーティションに集中して位置し、且つそれぞれ各メモリパーティションに含まれる内部メモリシステム及びキャッシュシステムと一対一に対応してもよい。
【0103】
その際、当該複数のDMAコントローラを介してデータ移行を行う必要があるときに、上記メモリパーティション内の複数のDMAコントローラへデータ移行指令をブロードキャストして送信することにより、各メモリパーティション内の異なる記憶空間の間のデータ移行を完了してもよい。
【0104】
以下では、本発明のデータ移行指令に対する改良を紹介する。本発明において、DMAコントローラに対する呼び出しオーバーヘッドを更に低減するために、全く新たなフォーマットのDMAコントローラに対するデータ移行指令を提出する。当該データ移行指令は、データ移行指令フィールドの数を減少させ、且つ各フィールドで示される意味を合理的に設定することにより、データ移行指令の長さを減少させ、DMAコントローラに対する呼び出しオーバーヘッドを低減する。
【0105】
関連技術において、DMAコントローラに対するデータ移行指令は、6つのフィールドを含み、それぞれデータ移行タイプフィールド、データ長フィールド、最終レベルのキャッシュの下位アドレスフィールド、最終レベルのキャッシュの上位アドレスフィールド、内部メモリシステム下位アドレスフィールド及び内部メモリシステム上位アドレスフィールドである。
【0106】
このように、関連技術におけるデータ移行指令は、比較的に冗長であり、DMAコントローラを呼び出すときに、DMAコントローラへ長いデータ移行指令を送信する必要がある。これにより、DMAコントローラに対する呼び出しオーバーヘッドを増加させる。
【0107】
この問題を解決するために、一実施例において、上記データ移行指令は、少なくともデータ移行タイプ、データ長、ソース記憶アドレス及び宛先記憶アドレスを含んでもよい。
【0108】
上記データ移行タイプは、具体的に、データ移行方向を示す。一実施例において、上記データ移行タイプは、メモリパーティション内のデータ流れ方向を示してもよい。具体的に、上記データ流れ方向(データ移行タイプ)は、以下の4種類のうちのいずれか1種類を含んでもよい。
【0109】
即ち、上記メモリパーティション内のキャッシュシステムの内部データの移行、上記メモリパーティションにおける内部メモリシステムの内部データの移行、上記メモリパーティションにおける最終レベルのキャッシュから内部メモリシステムへのデータ移行、及び上記メモリパーティションにおける内部メモリシステムから最終レベルのキャッシュへのデータ移行である。
【0110】
実際の応用において、上記4種類のデータ流れ方向を4種類の識別子に対応付け、且つ実際にDMAコントローラを呼び出すときに、上記4種類の識別子を上記データ移行タイプに書き込んでもよい。これにより、DMAコントローラは、今回のデータ移行のデータ流れ方向を識別することができる。
【0111】
上記データ長は、具体的に、伝送する必要があるデータ量の大きさを示す。理解できるように、データ量の大きさが記憶空間と対応関係を有するため、当該データの記憶空間における開始位置を知ると、当該データのデータ長に基づいて、当該データの記憶空間における終了位置を取得することができる。
【0112】
上記ソース記憶アドレスは、具体的に、移行すべきデータの現在記憶位置の開始アドレスを指す。例えば、データが内部メモリシステムから最終レベルのキャッシュに移行された場合に、上記ソース記憶アドレスは、データの上記内部メモリシステムにおける開始位置となる。
【0113】
上記宛先記憶アドレスは、具体的に、移行すべきデータが移行された後の記憶位置の開始アドレスを指す。例えば、データが内部メモリシステムから最終レベルのキャッシュに移行された場合に、上記宛先記憶アドレスは、データが上記最終レベルのキャッシュへ移行された開始位置となる。
【0114】
理解できるように、DMAコントローラは、データ移行指令を受信した後、上記データ移行指令におけるソース記憶アドレスフィールド及びデータ長に基づいてソース記憶空間を特定してもよく、上記データ移行指令における宛先記憶アドレスフィールド及びデータ長に基づいて宛先記憶空間を特定してもよく、更に、上記データ移行指令におけるデータ移行タイプに基づいてソース記憶空間のデータを宛先記憶空間に移行してもよい。
【0115】
図5を参照すると、
図5は、本発明に示すデータ移行指令の模式図である。
図5に示すように、上記データ移行指令は、第1フィールド、第2フィールド、第3フィールド及び第4フィールドを含む。
【0116】
上記第1フィールドは、データ移行タイプ及びデータ長を示すフィールドである。
【0117】
上記第2フィールドは、ソース記憶アドレスの下位アドレスを示すフィールドである。
【0118】
上記第3フィールドは、ソース記憶アドレスの上位アドレスと宛先記憶アドレスの上位アドレスと示すフィールドである。
【0119】
上記第4フィールドは、宛先記憶アドレスの下位アドレスを示すフィールドである。
【0120】
ここで、説明すべきことは、上記データ移行指令中の各フィールドの順番、及び各フィールド中の異なる意味を示すデータビットの位置は、実際の状況に応じて調整されてもよく、ここで限定されない。
【0121】
0000(バイナリ)が、データがキャッシュシステムの内部で移行されることを指示し、0001(バイナリ)が、データが内部メモリシステムの内部で移行されることを指示し、0010(バイナリ)が、データが内部メモリシステムから最終レベルのキャッシュに移行されることを指示し、0011(バイナリ)が、データが最終レベルのキャッシュから内部メモリシステムに移行されることを指示すると仮定する。
【0122】
上記状況において、内部メモリシステムの下位アドレス0x3EAB_0000(16進数)、上位アドレス0xAB_00(16進数)から、2メガのデータを最終レベルのキャッシュの下位アドレス0x3E5B_0000(16進数)、上位アドレス0xCD_00(16進数)に移行すると仮定する。
【0123】
その際、チップの処理コアは、DMAコントローラへのデータ移行指令を作成するときに、0010を第1フィールドの前4ビットに書き込み、2メガをバイナリに変換して上記第1フィールドの後28ビットに書き込んでもよい。その後、上記処理コアは、上記内部メモリシステムの下位アドレス0x3EAB_0000をバイナリに変換して上記第2フィールドに書き込み、且つ上記内部メモリシステムの上位アドレス0xAB_00をバイナリに変換して上記第3フィールドの後16ビットに書き込んでもよい。最後に、上記処理コアは、上記最終レベルのキャッシュの上位アドレス0xCD_00を上記第3フィールドの前16ビットに書き込み、且つ上記最終レベルのキャッシュの下位アドレス0x3E5B_0000をバイナリに変換して上記第4フィールドに書き込んでもよい。
【0124】
上記処理コアは、上記データ移行指令の構造を完了した後、当該データ移行指令ブロードキャストを各DMAコントローラに送信してもよい。これにより、各DMAコントローラは、上記データ移行指令に応答し、上記内部メモリシステムの下位アドレス0x3EAB_0000、上位アドレス0xAB_00から、2メガのデータを上記最終レベルのキャッシュの下位アドレス0x3E5B_0000、上位アドレス0xCD_00に移行する。
【0125】
以上から分かるように、上記データ移行指令が少なくともデータ移行タイプ及びデータ長フィールド、ソース記憶アドレスフィールド及び宛先記憶アドレスフィールドを含んでもよいため、DMAコントローラを呼び出すときに、DMAコントローラに対する呼び出しオーバーヘッドを低減することができる。
【0126】
実施例において、関連技術に示されたデータ移行指令における6つのフィールドの合併を採用することにより、データ移行指令に含まれるフィールド数を減少させてもよい。
【0127】
実際の応用において、データ移行タイプに必要なビット数が少なく、1つのフィールド(32ビット)を占用すると浪費になってしまうため、データ移行タイプとデータ長を1つのフィールドに統合することができる。最終レベルのキャッシュは、一般的に総容量が小さい(例えば、数メガ)ため、最終レベルのキャッシュの下位アドレスフィールドと上位アドレスフィールドを1つのフィールドに統合してもよい。
【0128】
図6を参照すると、
図6は、本発明に示すデータ移行指令の模式図である。
図6に示すように、上記データ移行指令は、少なくとも第1フィールド、第2フィールド、第3フィールド及び第4フィールドを含む。
【0129】
ここで、上記第1フィールドは、データ移行タイプ及びデータ長を示すフィールドである。
【0130】
上記第2フィールドは、最終レベルのキャッシュの記憶アドレスを示すフィールドである。
【0131】
上記第3フィールドは、内部メモリシステムを示す下位アドレスフィールドである。
【0132】
上記第4フィールドは、内部メモリシステムを示す上位アドレスフィールドである。
【0133】
説明すべきことは、上記データ移行指令における各フィールドの順番、及び各フィールドにおける異なる意味を示すデータビットの位置は、実際の状況に応じて調整されてもよく、ここで限定しない。
【0134】
上記第1フィールドで示される意味は、上記実施例を参照すればよく、ここで詳しく説明しない。
【0135】
上記第2フィールドは、最終レベルのキャッシュの記憶空間の開始アドレスを示す。データが最終レベルのキャッシュから内部メモリシステムに移行されると、第1フィールドが示すときに、上記第2フィールドで示された記憶アドレスは、データの現在記憶位置の開始位置となる。データが内部メモリシステムから最終レベルのキャッシュに移行されると、第1フィールドが示すときに、上記第2フィールドで示された記憶アドレスは、データが移行された後の記憶位置の開始位置となる。
【0136】
上記第3フィールド及び上記第4フィールドで示される意味は、上記実施例を参照すればよく、ここで詳しく説明しない。
【0137】
以上から分かるように、上記データ移行指令が4つのみのフィールドを含むため、DMAコントローラを呼び出すときに、DMAコントローラに対する呼び出しオーバーヘッドを低減することができる。
【0138】
それ相応に、本発明は、チップに用いられるデータ移行方法を更に提出する。当該方法では、メモリパーティションに内蔵されたDMAコントローラへデータ移行指令を処理コアを介して配信することにより、上記DMAコントローラが、上記処理コアから発されたデータ移行指令に応答し、移行する必要のあるデータが上記メモリパーティション内部で移行を完了することができるようにする。これにより、当該チップ内部のメモリアクセス帯域幅を解放し、データ移行効率を高め、チップ性能を向上させる。
【0139】
図7を参照すると、
図7は、本発明に示す、チップに用いられるデータ移行方法の方法フローチャートである。
図7に示すように、上記方法は、以下のステップを含んでもよい。
【0140】
S702では、上記処理コアは、上記DMAコントローラへデータ移行指令を送信する。
【0141】
S704では、上記DMAコントローラは、上記データ移行指令に基づいて、上記メモリパーティション内部の異なる記憶空間の間のデータ移行を行う。
【0142】
上記チップは、上記いずれかの実施例に示すチップ構造を有するチップであってもよい。一実施例において、上記チップは、
図2に示すチップ構造を採用してもよい。
図2に示すように、上記チップは、少なくとも1つの処理コアと、少なくとも1つのメモリパーティションとを含む。上記メモリパーティションは、キャッシュシステム、内部メモリシステム及びDMAコントローラを含む。上記DMAコントローラは、上記キャッシュシステム及び内部メモリシステムにそれぞれ接続される。
【0143】
説明すべきことは、実際の応用において、上記メモリパーティションが、1レベル又は複数レベルのキャッシュを有するキャッシュシステム、少なくとも1つの内部メモリシステム、及び1つ又は複数のDMAコントローラを含んでもよく、ここで特に限定されない。
【0144】
一実施例において、上記チップは、人工知能アルゴリズムを実行してもよい。例えば、上記チップは、AIニューラルネットワークチップ又はGPUグラフィック処理チップであってもよい。
【0145】
上記処理コアは、一般的にチップ内の計算コアであり、コード演算を実行する。例えば、上記処理コアは、一般的に、開発者によって作成されたプログラムコードに基づいて、上記メモリパーティションでデータ移行を行ってもよい。
【0146】
実際の応用において、上記メモリパーティション内部の記憶空間の間のデータ移行は、通常、上記メモリパーティション内のキャッシュシステムの内部データの移行、上記メモリパーティション内の内部メモリシステムの内部データの移行、及び、上記メモリパーティションにおける最終レベルのキャッシュと内部メモリシステムとの間のデータ移行を含んでもよい。
【0147】
上記メモリパーティションは、一般的にデータを記憶するために用いられる。
【0148】
実際の応用において、一般的にチップは、記憶階層を有するメモリパーティションを採用する。上記メモリパーティションは、1レベル又は複数レベルのキャッシュを有するキャッシュシステム及び内部メモリシステムを含んでもよい。
【0149】
例えば、
図2を参照すると、上記キャッシュシステムは、少なくともL1、L2及びL3キャッシュを含んでもよい。その際、処理コアがデータを取得する必要があるときに、一般的にまずL1キャッシュにアクセスする。当該L1キャッシュに上記処理コアに必要なデータが記憶されている場合に、上記処理コアは、今回のデータ取得を完了する。当該L1キャッシュに上記処理コアに必要なデータが記憶されていない場合に、上記処理コアは、上記L2キャッシュにアクセスし続けて必要なデータを取得する。これによって類推する。上記最終レベルのキャッシュ即ちL3キャッシュにも処理コアに必要なデータに係らない場合に、上記処理コアは、引き続き上記内部メモリシステムからデータを取得する。
【0150】
上記例から分かりやすいように、チップ性能は、キャッシュヒット率(CHCHE HIT)に大きく依存する。一方で、キャッシュヒット率を向上させるために、現在、チップにおいて開発者によって直接に管理され得る大容量キャッシュを提供し、それによりキャッシュヒット率を向上させる。
【0151】
一般的に、上記キャッシュシステムが複数レベルのキャッシュを含むときに、最終レベルのキャッシュは、上記大容量キャッシュとすることができ、上記DMAコントローラは、上記最終レベルのキャッシュの記憶空間と上記内部メモリシステム内の記憶空間との間のデータ移行を行う。
【0152】
キャッシュシステムの少なくとも一部の記憶空間がSPMとして配置されたときに、この部分の記憶空間のデータ移行効率に影響を与える。一実施例において、データ移行効率を向上させるために、最終レベルのキャッシュの少なくとも一部の記憶空間は、SPMとして配置される。
【0153】
その際、データ移行を行うときに、上記DMAコントローラは、上記最終レベルのキャッシュにおけるSPMとして配置される記憶空間と上記内部メモリシステムとの間のデータ移行を行う。DMAコントローラを介して上記最終レベルのキャッシュにおけるSPMとして配置される記憶空間と上記内部メモリシステムとの間のデータ移行を行うように配置されるため、移行されたデータが処理コアを通過することを回避することができ、それにより帯域幅を解放し、データ移行経路を短縮し、データ移行効率を向上させる。
【0154】
一実施例において、複数種の業務シーンに柔軟に適用するために、上記キャッシュシステムの最終レベルのキャッシュが3種の動作モードをサポートする。第1動作モードでは、上記最終レベルのキャッシュの全部の記憶空間がキャッシュメモリとして配置され、第2動作モードでは、上記最終レベルのキャッシュの全部の記憶空間がSPMとして配置され、第3動作モードでは、上記最終レベルのキャッシュの一部の記憶空間がキャッシュメモリとして配置され、他の一部の記憶空間がSPMとして配置される。
【0155】
このような方式により、開発者は、需要に応じて上記最終レベルのキャッシュを柔軟に配置することができ、それにより上記チップの適用性を向上させる。
【0156】
説明すべきことは、最終レベルのキャッシュを動的に設定することを実現するために、一実施例において、上記メモリパーティションは、更にモード配置器を含んでもよい。
【0157】
上記モード配置器は、ユーザ配置情報に基づいて、上記キャッシュシステムにおける最終レベルのキャッシュの動作モードを配置する。
【0158】
実際の応用において、開発者は、ユーザ配置情報に基づいて、上記モード配置器により、上記最終レベルのキャッシュの動作モードを配置してもよい。
【0159】
例えば、マルチチップカスケード分散型トレーニングシステムのシーンにおいて、チップ間の通信が高容量、低遅延を必要とするため、上記最終レベルのキャッシュの全ての記憶空間をSPMとして配置してもよい。
【0160】
更に例えば、性能に対する要求が高くないアルゴリズム開発のシーンにおいて、開発者の間で最終レベルのキャッシュを管理する必要がないため、上記最終レベルのキャッシュの全ての記憶空間をキャッシュメモリとして配置してもよい。
【0161】
更に例えば、データ伝送効率を必要とするだけでなく、データの再利用率も重視するシーンにおいて、AI演算パラメータを記憶するために、上記最終レベルのキャッシュの一部の記憶空間をキャッシュメモリとして配置し、且つ一部の記憶空間をSPMとして配置してもいい。
【0162】
上記内部メモリシステムは、グローバル内部メモリシステムであってもよい。例えば、DRAM、SDRAM等であってもよい。
【0163】
一実施例において、メモリアクセス帯域幅を向上させるために、上記グローバル内部メモリシステムは、HBMであってもよい。
【0164】
上記DMAコントローラは、上記メモリパーティション内部の異なる記憶空間の間のデータ移行を行う。
【0165】
実際の応用において、上記DMAコントローラは、上記メモリパーティション内の第1記憶空間からデータを読み取り、読み取られたデータを上記メモリパーティション内の第2記憶空間に書き込んでもよい。
【0166】
例えば、上記第1記憶空間は、内部メモリシステムであり、上記第2記憶空間は、L2キャッシュである。上記DMAコントローラは、上記処理コアから送信されたデータ移行指令に応答し、上記内部メモリシステムと上記L2キャッシュとの間のデータ移行を制御してもよい。
【0167】
上記データ移行指令は、具体的に、上記メモリパーティション内部の記憶空間の間のデータ移行をトリガするために用いられる。
【0168】
本発明において、上記データ移行指令は、チップの処理コアにより構成され且つDMAコントローラへ送信されることにより、DMAコントローラがデータ移行を完了するように制御することができる。
【0169】
上記メモリパーティション内部の記憶空間の間でデータ移行を行う必要があるときに、上記処理コアは、上記DMAコントローラへデータ移行指令を送信する。
【0170】
上記DMAコントローラは、上記データ移行指令を受信した後、上記データ移行指令に応答し、上記メモリパーティション内部の記憶空間の間のデータ移行を制御してもよい。
【0171】
上記技術案から分かるように、上記処理コアが上記DMAコントローラへデータ移行指令を送信し、上記DMAコントローラが上記データ移行指令に応答し、上記メモリパーティション内の異なる記憶空間の間のデータ移行を制御可能であるため、移行する必要があるデータを上記メモリパーティション内部で移行可能であり、それにより当該チップ内部のメモリアクセス帯域幅を解放し、データ移行効率を高め、チップ性能を向上させる。
【0172】
一実施例において、上記チップは、複数のメモリパーティションを含む可能性があり、各メモリパーティション内でデータ移行を完了するために、上記処理コアは、上記複数のメモリパーティション内のDMAコントローラへそれぞれデータ移行指令を送信してもよい。これにより、各DMAコントローラは、自身が位置するメモリパーティション内部のデータ移行を制御することができる。
【0173】
例えば、チップは、4つのメモリパーティションを含むと仮定する。データが内部メモリシステムから最終レベルのキャッシュに移行する必要があると仮定し、チップに4つのメモリパーティションが存在するため、上記処理コアは、上記4つのメモリパーティション内のDMAコントローラへそれぞれデータ移行指令を送信してもよい。上記4つのメモリパーティション内のDMAコントローラは、データ移行指令を受信した後、自身の位置するメモリパーティション内部のデータ移行を制御してもよい。
【0174】
一実施例において、上記チップが複数のメモリパーティションを含むときに、開発者によるプログラミングを容易にするために、上記複数のメモリパーティションは、何れもUMAを採用する。
【0175】
開発者によるプログラミングを容易にするために、上記複数のメモリパーティションのうちの最終レベルのキャッシュ、及び上記複数のメモリパーティション内の内部メモリシステムは、何れもUMAを採用してもよい。
【0176】
実際の応用において、上記複数のメモリパーティションにおける最終レベルのキャッシュは、UMAを採用してもよい。上記複数のメモリパーティションにおける内部メモリシステムもUMAを採用してもよい。
【0177】
このような方式により、開発者にとって、異なる最終レベルのキャッシュの間の有効なアドレスが同じであり、異なる内部メモリシステムの間の有効なアドレスも同じである。したがって、各最終レベルのキャッシュ、又は、各内部メモリシステムへデータを書き込むときに、1つのみのアドレスを入力すればよく、複数の最終レベルのキャッシュ又は複数の内部メモリシステムに対してそれぞれデータを書き込む必要がなく、開発者のプログラミング効率を向上させ、データ記憶効率も向上させる。
【0178】
DMAコントローラに対する呼び出しオーバーヘッドを低減するために、上記処理コアは、上記少なくとも1つのメモリパーティション中の少なくとも1つのDMAコントローラへデータ移行指令をブロードキャストする。
【0179】
実際の応用において、メモリパーティション内でデータ移行を行う必要があるときに、処理コアは、上記複数のメモリパーティション内のDMAコントローラへデータ移行指令をブロードキャストして送信してもよい。
【0180】
例えば、チップが4つのメモリパーティションを含み、且つ上記4つのメモリパーティションにおける最終レベルのキャッシュ(最終レベルのキャッシュがL2キャッシュであると仮定する)と、上記複数のメモリパーティション内の内部メモリシステムとが何れもUMAを採用可能であると仮定する。
【0181】
上記状況において、内部メモリシステムから8MのデータをL2キャッシュに移行する必要があるときに、実際には、各メモリパーティション内で2メガのデータの移行を完了する必要がある。その際、処理コアは、上記複数のメモリパーティション内のDMAコントローラへデータ移行指令をブロードキャストして送信してもよい。
【0182】
上記4つのメモリパーティション内のDMAコントローラは、データ移行指令を受信した後、内部メモリシステムの上記データ移行指令で示された記憶位置から2メガのデータを抽出し、上記2メガのデータをL2キャッシュの上記データ移行指令で示された記憶位置に移行し、それによりデータ移行を完了してもよい。
【0183】
処理コアは、上記4つのメモリパーティション内のDMAコントローラへデータ移行指令をブロードキャストして送信することで各メモリパーティション内部のデータ移行を完了可能であるため、処理コアのDMAコントローラへの呼び出し回数を減少させ、それによりDMAコントローラに対する呼び出しオーバーヘッドを低減する。
【0184】
以下では、本発明のデータ移行指令に対する改良を紹介する。本発明において、DMAコントローラに対する呼び出しオーバーヘッドを更に低減するために、全く新たなフォーマットのDMAコントローラに対するデータ移行指令を提出する。当該データ移行指令は、データ移行指令フィールドの数を減少させ、且つ各フィールドで示される意味を合理的に設定することにより、データ移行指令の長さを減少させ、DMAコントローラに対する呼び出しオーバーヘッドを低減する。
【0185】
関連技術において、DMAコントローラへのデータ移行指令は、6つのフィールドを含み、それぞれデータ移行タイプフィールド、データ長フィールド、最終レベルのキャッシュの下位アドレスフィールド、最終レベルのキャッシュの上位アドレスフィールド、内部メモリシステム下位アドレスフィールド及び内部メモリシステム上位アドレスフィールドである。
【0186】
このように、関連技術におけるデータ移行指令は、比較的に冗長であり、DMAコントローラを呼び出すときに、DMAコントローラへ長いデータ移行指令を送信する必要があり、それによりDMAコントローラに対する呼び出しオーバーヘッドを増加させる。
【0187】
この問題を解決するために、一実施例において、上記データ移行指令は、少なくともデータ移行タイプ、データ長、ソース記憶アドレス及び宛先記憶アドレスを含んでもよい。
【0188】
上記データ移行タイプは、具体的にデータ移行方向を示す。一実施例において、上記データ移行タイプは、メモリパーティション内のデータ流れ方向を示してもよい。具体的に、上記データ流れ方向(データ移行タイプ)は、以下の4種類のうちのいずれかを含んでもよい。
【0189】
即ち、上記メモリパーティション内のキャッシュシステムの内部データの移行、上記メモリパーティションにおける内部メモリシステムの内部データの移行、上記メモリパーティションにおける最終レベルのキャッシュから内部メモリシステムへのデータ移行、及び上記メモリパーティションにおける内部メモリシステムから最終レベルのキャッシュへのデータ移行である。
【0190】
実際の応用において、上記4種類のデータ流れ方向を4種類の識別子に対応付け、且つ実際にDMAコントローラを呼び出すときに、上記4種類の識別子を上記データ移行タイプに書き込んでもよい。これにより、DMAコントローラは、今回のデータ移行のデータ流れ方向を識別してもよい。
【0191】
上記データ長は、具体的に伝送する必要があるデータ量の大きさを示す。理解できるように、データ量の大きさが記憶空間と対応関係を有するため、当該データの記憶空間における開始位置を知ると、当該データのデータ長に基づいて、当該データの記憶空間における終了位置を取得することができる。
【0192】
上記ソース記憶アドレスは、具体的に移行すべきデータの現在記憶位置の開始アドレスを示す。例えば、データが内部メモリシステムから最終レベルのキャッシュに移行された場合に、上記ソース記憶アドレスは、データの上記内部メモリシステムにおける開始位置となる。
【0193】
上記宛先記憶アドレスは、具体的に移行すべきデータが移行された後の記憶位置の開始アドレスを指す。例えば、データが内部メモリシステムから最終レベルのキャッシュに移行された場合に、上記宛先記憶アドレスは、データが上記最終レベルのキャッシュに移行された開始位置となる。
【0194】
理解できるように、DMAコントローラは、データ移行指令を受信した後、上記データ移行指令におけるソース記憶アドレスフィールド及びデータ長に基づいてソース記憶空間を特定してもよく、上記データ移行指令における宛先記憶アドレスフィールド及びデータ長に基づいて宛先記憶空間を特定してもよく、更に、上記データ移行指令におけるデータ移行タイプに基づいて、ソース記憶空間のデータを宛先記憶空間に移行してもよい。
【0195】
図5を参照すると、
図5は、本発明に示すデータ移行指令の模式図である。
図5に示すように、上記データ移行指令は、第1フィールド、第2フィールド、第3フィールド及び第4フィールドを含む。
【0196】
上記第1フィールドは、データ移行タイプ及びデータ長を示すフィールドである。
【0197】
上記第2フィールドは、ソース記憶アドレスの下位アドレスを示すフィールドである。
【0198】
上記第3フィールドは、ソース記憶アドレスの上位アドレスと宛先記憶アドレスの上位アドレスとを示すフィールドである。
【0199】
前記第4フィールドは、宛先記憶アドレスの下位アドレスを示すフィールドである。
【0200】
説明すべきことは、上記データ移行指令における各フィールドの順番、及び各フィールドにおける異なる意味を指示するデータビットの位置は、実際の状況に応じて調整されてもよく、ここで限定しない。
【0201】
0000(バイナリ)は、データがキャッシュシステムの内部で移行されることを指示し、0001(バイナリ)は、データが内部メモリシステムの内部で移行されることを指示し、0010(バイナリ)は、データが内部メモリシステムから最終レベルのキャッシュに移行されることを指示し、0011(バイナリ)は、データが最終レベルのキャッシュから内部メモリシステムに移行されることを指示する。
【0202】
上記状況において、内部メモリシステムの下位アドレス0x3EAB_0000(16進数)、上位アドレス0xAB_00(16進数)から、2メガのデータを最終レベルのキャッシュの下位アドレス0x3E5B_0000(16進数)、上位アドレス0xCD_00(16進数)に移行すると仮定する。
【0203】
その際、チップの処理コアは、DMAコントローラへのデータ移行指令を作成するときに、0010を第1フィールドの前4ビットに書き込み、2メガをバイナリに変換して上記第1フィールドの後28ビットに書き込んでもよい。その後、上記処理コアは、上記内部メモリシステムの下位アドレス0x3EAB_0000をバイナリに変換して上記第2フィールドに書き込み、且つ上記内部メモリシステムの上位アドレス0xAB_00をバイナリに変換して上記第3フィールドの後16ビットに書き込んでもよい。最後に、上記処理コアは、上記最終レベルのキャッシュの上位アドレス0xCD_00を上記第3フィールドの前16ビットに書き込み、且つ上記最終レベルのキャッシュの下位アドレス0x3E5B_0000をバイナリに変換して上記第4フィールドに書き込んでもよい。
【0204】
上記処理コアは、上記データ移行指令の構造を完了した後、当該データ移行指令を各DMAコントローラへブロードキャストして送信してもよい。これにより、各DMAコントローラは、上記データ移行指令に応答し、上記内部メモリシステムの下位アドレス0x3EAB_0000、上位アドレス0xAB_00から、2兆のデータを上記最終レベルのキャッシュシステムの下位アドレス0x3E5B_0000、上位アドレス0xCD_00に移行する。
【0205】
以上から分かるように、上記データ移行指令が少なくともデータ移行タイプ及びデータ長フィールド、ソース記憶アドレスフィールド並びに宛先記憶アドレスフィールドを含んでもよいため、DMAコントローラを呼び出すときに、DMAコントローラに対する呼び出しオーバーヘッドを低減することができる。
【0206】
一実施例において、関連技術に示されたデータ移行指令における6つのフィールドの合併を採用することにより、データ移行指令に含まれるフィールド数を減少させてもよい。
【0207】
実際の応用において、データ移行タイプに必要なビット数が少なく、1つのフィールド(32ビット)を占用すると浪費になってしまうため、データ移行タイプとデータ長を1つのフィールドに統合することができる。最終レベルのキャッシュは、一般的に総容量が小さい(例えば、数メガ)ため、最終レベルのキャッシュの下位アドレスフィールドと上位アドレスフィールドを1つのフィールドに統合してもよい。
【0208】
図6を参照すると、
図6は、本発明に示すデータ移行指令模式図である。
図6に示すように、上記データ移行指令は、少なくとも第1フィールド、第2フィールド、第3フィールド及び第4フィールドを含む。
【0209】
上記第1フィールドは、データ移行タイプ及びデータ長を示すフィールドである。
【0210】
上記第2フィールドは、最終レベルのキャッシュの記憶アドレスを示すフィールドである。
【0211】
上記第3フィールドは、内部メモリシステムの下位アドレスを示すフィールドである。
【0212】
上記第4フィールドは、内部メモリシステムの上位アドレスを示すフィールドである。
【0213】
説明すべきことは、上記データ移行指令における各フィールドの順番、及び各フィールドにおける異なる意味を示すデータビットの位置が実際の状況に応じて調整されてもよく、ここで限定されない。
【0214】
上記第1フィールドで示される意味は、上記実施例を参照してもよく、ここで詳しく説明しない。
【0215】
上記第2フィールドは、最終レベルのキャッシュの記憶空間の開始アドレスを示す。第1フィールドがデータに対して最終レベルのキャッシュから内部メモリシステムへ移行するよう指示するときに、上記第2フィールドで示される記憶アドレスは、データ現在記憶位置の開始位置となる。第1フィールドがデータに対して内部メモリシステムから最終レベルのキャッシュへ移行するよう指示するときに、上記第2フィールドで示される記憶アドレスは、データが移行された後の記憶位置の開始位置となる。
【0216】
上記第3フィールド及び上記第4フィールドで示される意味は、上記実施例を参照してもよく、ここで詳しく説明しない。
【0217】
以上のように、上記データ移行指令が4つのみのフィールドを含むため、DMAコントローラを呼び出すときに、DMAコントローラに対する呼び出しオーバーヘッドを低減することができる。
【0218】
本発明は、電子機器を更に提出する。当該電子機器は、上記何れかの実施例に示すチップを備える。
【0219】
例えば、当該電子機器は、携帯電話等のスマート端末、又は、カメラヘッドを有して画像処理を行うことができる他の機器であってもよい。例示として、当該電子機器は、収集された画像を取得したときに、画像を処理してもよい。処理過程は、本発明の実施例のチップを用いて計算タスクを実行してもよい。
【0220】
上記チップがメモリパーティションのデータ移行効率を向上させることができ、より高い性能を有するため、当該チップを用いると、計算タスクの処理効率の向上を支援することができ、電子機器性能を向上させる。
【0221】
当業者であれば理解できるように、本発明の1つ又は複数の実施例は、方法、システム又はコンピュータプログラム製品として提供され得る。したがって、本発明の1つ又は複数の実施例は、100%ハードウェアの実施例、100%ソフトウェアの実施例、又はソフトウェアとハードウェアとを組み合わせた態様の実施例の形式を採用してもよい。また、本発明の1つ又は複数の実施例は、1つ又は複数の、コンピュータ利用可能なプログラムコードを含むコンピュータ利用可能な記憶媒体(磁気ディスクメモリ、光学メモリ等を含むが、それらに限定されない)で実施されるコンピュータプログラム製品の形式を採用してもよい。
【0222】
本発明に記載の「及び/又は」は、両者のうちの1つを少なくとも含むことを表す。例えば、「A及び/又はB」は、A、B、及び「AとB」という3つの形態を含む。
【0223】
本発明における各実施例は、何れも漸進の方式で記述され、各実施例は、他の実施例との相違点を重点的に説明し、各実施例同士の同じ又は類似する部分が互いに参照すればよい。特にデータ処理機器の実施例は、方法実施例に基本的に類似するため、記述が相対的に簡単であり、関連箇所が方法実施例の部分の説明を参照すればよい。
【0224】
以上は、本発明の特定の実施例について記述した。他の実施例は、添付する特許請求の範囲のスコープ内に含まれる。幾つかの場合において、特許請求の範囲に記載の挙動又はステップは、実施例における順番と異なる順番で実行可能であり、且つ依然として所望の結果を得ることができる。また、図面に描かれた手順は、示された特定の順番又は連続順番でないと所望の結果を得られないことを要求するとは限らない。幾つかの実施形態において、マルチタスク処理及び並行処理も、実行可能であり、又は有利なものである。
【0225】
本発明に記述されたテーマ及び機能操作の実施例は、デジタル電子回路、有形的に体現されたコンピュータソフトウェア若しくはファームウェア、本発明に開示された構造及びその構造の均等物を含むコンピュータハードウェア、又はそれらのうちの1つ又は複数の組み合わせにおいて実現され得る。本発明に記述されたテーマの実施例は、1つ又は複数のコンピュータプログラム、即ち、有形の非一時的なプログラムキャリア上にコーディングされることでデータ処理装置によって実行され又はデータ処理装置の操作を制御されるコンピュータプログラム指令における1つ又は複数のモジュールとして実現され得る。代替的に又は追加的に、プログラム指令は、人工で生成された伝送信号、例えば機器で生成された電気、光又は電磁的信号にコーディングされてもよい。当該信号は、生成されることで情報を符号化して適切な受信機装置へ伝送されてデータ処理装置に実行させる。コンピュータ記憶媒体は、機器読み取り可能な記憶機器、機器読み取り可能な記憶基板、ランダム若しくはシリアルアクセスメモリ機器、又はそれらのうちの1つ又は複数の組み合わせであってもよい。
【0226】
本発明に記述された処理及び論理フローは、1つ又は複数のコンピュータプログラムを実行する1つ又は複数のプログラマブルコンピュータによって実施されて、入力データに応じて操作を行って出力を生成して対応する機能を実行させてもよい。前記処理及び論理フローは、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)によって実行されてもよく、装置も専用論理回路として実現されてもよい。
【0227】
コンピュータプログラムの実行に適するコンピュータは、例えば、汎用及び/又は専用マイクロプロセッサ、又は如何なる他のタイプの中央処理装置を含む。通常、中央処理装置は、読み出し専用メモリ及び/又はランダムアクセスメモリから指令及びデータを受信する。コンピュータの基本ユニットは、指令を実施や実行するための中央処理装置と、指令及びデータを記憶するための1つ又は複数のメモリ機器とを備える。通常、コンピュータは、更に、データを記憶するための1つ又は複数の大容量記憶機器、例えば、磁気ディスク、光磁気ディスク又は光ディスク等を含み、又は、コンピュータは、この大容量記憶機器に操作可能にカップリングされてそれからデータを受信したりそれへデータを伝送したりし、又は、2種の状況を兼ね備える。しかし、コンピュータは、このような機器を必ず有するとは限らない。また、コンピュータは、別の機器、例えば、携帯電話、パーソナルデジタルアシスタント(PDA)、モバイルオーディオ又はビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、又は、例えばユニバーサルシリアルバス(USB)フラッシュメモリドライバの携帯型記憶機器に組み込まれてもよい。以上は、単に幾つかの例である。
【0228】
コンピュータプログラム指令及びデータを記憶するのに適するコンピュータ可読媒体は、あらゆる形態の不揮発性メモリ、メディアとメモリ機器を含み、例えば、半導体メモリ機器(例えば、EPROM、EEPROMとフラッシュメモリ機器)、磁気ディスク(例えば、内部ハードディスク又はリムーバブルディスク)、光磁気ディスク及び0xCD_00 ROMとDVD-ROMディスクを含む。プロセッサとメモリは、専用論理回路によって補充され又は専用論理回路に統合されてもよい。
【0229】
本発明が大量の具体的な実施詳細を含むが、これらの詳細は、如何なる開示範囲又は保護請求される範囲を制限するとは解釈されるべきではなく、主に特定の開示された具体的な実施例の特徴を記述するために用いられる。本発明の内在の複数の実施例に記述された幾つかの特徴は、単一の実施例において組み合わせて実施されてもよい。その一方、単一の実施例に記述された各種の特徴は、複数の実施例に分けて実施され、又は、如何なる適切なサブ組み合わせとして実施されてもよい。また、特徴が上記のように幾つかの組み合わせにおいて役割を果たし、ひいてはこのように保護するように要求されてもよいが、保護請求される組み合わせからの1つ又は複数の特徴は、幾つかの場合において当該組み合わせから除去されてもよく、更に、保護請求される組み合わせは、サブ組み合わせ又はサブ組み合わせの変形を指してもよい。
【0230】
類似的に、図面に特定の順番で操作が描かれたが、これらの操作が示された特定の順番で実行され又は順に実行され又は全ての例示の操作が実行されて所望の結果を得ることを要求するとして理解されるべきではない。幾つかの場合に、マルチタスク及び並行処理は、有利である可能性がある。また、上記実施例における各種のシステムモジュールとユニットの分離は、全ての実施例においてこのような分離を必要とすると理解されるべきではない。更に、理解できるように、記述されるプログラムユニット及びシステムは、通常、単一のソフトウェア製品に統合されてもよく、又は複数のソフトウェア製品としてカプセル化されてもよい。
【0231】
このように、テーマの特定実施例が記述された。他の実施例は、添付する特許請求の範囲のスコープ内に含まれる。幾つかの場合において、特許請求の範囲に記載の動作は、異なる順番で実行可能であり、且つ依然として所望の結果を得ることができる。また、図面に描かれた処理が必ずしも示された特定の順番又は連続順番で所望の結果を得るとは限らない。幾つかの実施形態において、マルチタスク処理及び並行処理は、有利である可能性がある。
【0232】
上述したのは、本発明の1つ又は複数の実施例の好適な実施例に過ぎず、本発明の1つ又は複数の実施例を制限するためのものではない。本発明の1つ又は複数の実施例の精神及び原則内でなされた如何なる変更、均等物による置換、改良等も、本発明の1つ又は複数の実施例の保護範囲内に含まれるべきである。
【手続補正書】
【提出日】2022-05-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
チップであって、
少なくとも1つの処理コアと、少なくとも1つのメモリパーティションとを含み、
メモリパーティションごとに、
前記メモリパーティションは、キャッシュシステム、内部メモリシステム及び直接メモリアクセス(DMA)コントローラを含み、
前記DMAコントローラは、前記キャッシュシステム及び前記内部メモリシステムにそれぞれ接続され、前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うことを特徴とするチップ。
【請求項2】
前記DMAコントローラが前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うことは、
前記キャッシュシステムの異なる記憶空間の間のデータ移行と、
前記内部メモリシステム内の異なる記憶空間の間のデータ移行と、
前記キャッシュシステムの記憶空間と前記内部メモリシステム内の記憶空間との間のデータ移行とのうちの少なくとも1つを含むことを特徴とする請求項1に記載のチップ。
【請求項3】
前記キャッシュシステムは、複数レベルのキャッシュを含み、
前記DMAコントローラが前記キャッシュシステムの記憶空間と前記内部メモリシステム内の記憶空間との間のデータ移行を行うことは、前記DMAコントローラが最終レベルのキャッシュの記憶空間と前記内部メモリシステム内の記憶空間との間のデータ移行を行うことを含み
、
前記最終レベルのキャッシュは、第1動作モードと第2動作モードと第3動作モードとの3種の動作モードをサポートし、
第1動作モードでは、前記最終レベルのキャッシュの全部の記憶空間がキャッシュメモリとして配置され、
第2動作モードでは、前記最終レベルのキャッシュの全部の記憶空間がスクラッチパッドメモリ(SPM)として配置され、
第3動作モードでは、前記最終レベルのキャッシュの一部の記憶空間がキャッシュメモリとして配置され、他の一部の記憶空間がSPMとして配置されることを特徴とする請求項2に記載のチップ。
【請求項4】
前記メモリパーティションは、ユーザ配置情報に基づいて前記最終レベルのキャッシュの動作モードを配置するためのモード配置器を更に含むことを特徴とする請求項
3に記載のチップ。
【請求項5】
前記少なくとも1つの処理コアと前記DMAコントローラとは、メインネットワークオンチップを介して互いにアクセスし、又は、
前記DMAコントローラ、前記キャッシュシステム及び前記内部メモリシステムは、サブネットワークオンチップを介して互いにアクセスすることを特徴とする請求項1~
4の何れか一項に記載のチップ。
【請求項6】
前記少なくとも1つの処理コアのうちの第1処理コアは、少なくとも1つの第1メモリパーティションに含まれる少なくとも1つの第1DMAコントローラへデータ移行指令を送信し、
前記少なくとも1つの第1DMAコントローラは、前記データ移行指令に基づいて、前記少なくとも1つの第1メモリパーティション内部の異なる記憶空間の間のデータ移行を行
い、前記データ移行指令は、データ移行タイプ、データ長、ソース記憶アドレス及び宛先記憶アドレスを含むことを特徴とする請求項1~
5の何れか一項に記載のチップ。
【請求項7】
前記第1処理コアが前記少なくとも1つの第1DMAコントローラへデータ移行指令を送信することは、前記第1処理コアが少なくとも1つの第2DMAコントローラへデータ移行指令をブロードキャストすることを含み、前記第2DMAコントローラは、前記異なる記憶空間の全部がUMAを採用する第1メモリパーティションに含まれることを特徴とする請求項
6に記載のチップ。
【請求項8】
前記データ移行指令は、第1フィールド、第2フィールド、第3フィールド及び第4フィールドを含み、
前記第1フィールドは、前記データ移行タイプ及び前記データ長を示すために用いられ、
前記第2フィールドは、前記ソース記憶アドレスの下位アドレスを示すために用いられ、
前記第3フィールドは、前記ソース記憶アドレスの上位アドレス及び前記宛先記憶アドレスの上位アドレスを示すために用いられ、
前記第4フィールドは、前記宛先記憶アドレスの下位アドレスを示すために用いられることを特徴とする請求項
6に記載のチップ。
【請求項9】
前記DMAコントローラが前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うことは、
前記メモリパーティション内の第1記憶空間からデータを読み取り、読み取られたデータを前記メモリパーティション内の第2記憶空間に書き込むことを含むことを特徴とする請求項1~
8の何れか一項に記載のチップ。
【請求項10】
チップに用いられるデータ移行方法であって、
前記チップは、少なくとも1つの処理コアと、少なくとも1つのメモリパーティションとを含み、各メモリパーティションは、キャッシュシステム、内部メモリシステム及び直接メモリアクセス(DMA)コントローラを含み、
前記データ移行方法は、メモリパーティションごとに、前記DMAコントローラを介して前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うステップを含むことを特徴とするデータ移行方法。
【請求項11】
前記キャッシュシステムは、複数レベルのキャッシュを含み、
前記DMAコントローラを介して前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うステップは、
前記DMAコントローラを介して最終レベルのキャッシュの記憶空間と前記内部メモリシステム内の記憶空間との間のデータ移行を行うことを含むことを特徴とする請求項
10に記載のデータ移行方法。
【請求項12】
ユーザ配置情報に基づいて前記最終レベルのキャッシュの動作モードを配置するステップを更に含むことを特徴とする請求項
11に記載のデータ移行方法。
【請求項13】
前記DMAコントローラを介して前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うステップは、
前記少なくとも1つの処理コアのうちの第1処理コアを介して、少なくとも1つの第1メモリパーティションに含まれる少なくとも1つの第1DMAコントローラへデータ移行指令を送信することと、
前記少なくとも1つの第1DMAコントローラが、前記データ移行指令に基づいて、前記少なくとも1つの第1メモリパーティション内部の異なる記憶空間の間のデータ移行を行うことと、を含むことを特徴とする請求項
10~12の何れか一項に記載のデータ移行方法。
【請求項14】
前記第1処理コアを介して前記少なくとも1つの第1DMAコントローラへ前記データ移行指令を送信することは、前記第1処理コアを介して少なくとも1つの第2DMAコントローラへデータ移行指令をブロードキャストすることを含み、
前記第2DMAコントローラは、前記異なる記憶空間の全部が統合メモリアーキテクチャ(UMA)を採用する第1メモリパーティションに含まれることを特徴とする請求項
13に記載のデータ移行方法。
【請求項15】
前記DMAコントローラを介して前記メモリパーティション内部の異なる記憶空間の間のデータ移行を行うステップは、
前記DMAコントローラを介して前記メモリパーティション内の第1記憶空間からデータを読み取り、読み取られたデータを前記メモリパーティション内の第2記憶空間に書き込むことを含むことを特徴とする請求項
10~14の何れか一項に記載のデータ移行方法。
【請求項16】
請求項1から
9の何れか一項に記載のチップを備えることを特徴とする電子機器。
【国際調査報告】